The /chips folder contains the list of microcontrollers supported by Tock.
Each MCU folder contains the hardware peripheral drivers for that MCU.
| HIL | apollo3 | arty_e21_chip | e310_g002 | e310_g003 | earlgrey | esp32-c3 | imxrt10xx | litex_vexriscv | lowrisc | msp432 | nrf52832 | nrf52833 | nrf52840 | qemu_rv32_virt_chip | rp2040 | sam4l | stm32f303xc | stm32f401cc | stm32f412g | stm32f429zi | stm32f446re | swervolf-eh1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| adc::Adc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
| adc::AdcHighSpeed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||||
| analog_comparator::AnalogComparator | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||
| ble_advertising::BleAdvertisementDriver | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||
| ble_advertising::BleConfig | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||
| bus8080::Bus8080 | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||
| can::Configure | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| can::Controller | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| can::Receive | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| can::Transmit | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| crc::Crc | ✓ | |||||||||||||||||||||
| dac::DacChannel | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| date_time::DateTime | ✓ | ✓ | ||||||||||||||||||||
| digest::Digest | ✓ | |||||||||||||||||||||
| digest::DigestData | ✓ | |||||||||||||||||||||
| digest::DigestHash | ✓ | |||||||||||||||||||||
| digest::DigestVerify | ✓ | |||||||||||||||||||||
| digest::HmacSha256 | ✓ | |||||||||||||||||||||
| digest::HmacSha384 | ✓ | |||||||||||||||||||||
| digest::HmacSha512 | ✓ | |||||||||||||||||||||
| digest::Sha256 | ✓ | |||||||||||||||||||||
| digest::Sha384 | ✓ | |||||||||||||||||||||
| digest::Sha512 | ✓ | |||||||||||||||||||||
| eic::ExternalInterruptController | ✓ | |||||||||||||||||||||
| entropy::Entropy32 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||||
| flash::Flash | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||
| gpio::Input | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| gpio::Interrupt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| gpio::Output | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| gpio::Pin | ✓ | ✓ | ✓ | |||||||||||||||||||
| i2c::I2CMaster | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
| i2c::I2CMasterSlave | ✓ | ✓ | ✓ | |||||||||||||||||||
| i2c::I2CSlave | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| i2c::SMBusMaster | ✓ | |||||||||||||||||||||
| led::Led | ✓ | |||||||||||||||||||||
| pwm::Pwm | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||
| pwm::PwmPin | ✓ | |||||||||||||||||||||
| radio::RadioConfig | ✓ | |||||||||||||||||||||
| radio::RadioData | ✓ | |||||||||||||||||||||
| rng::Rng | ✓ | |||||||||||||||||||||
| rsa_math::RsaCryptoBase | ✓ | |||||||||||||||||||||
| sensors::TemperatureDriver | ✓ | ✓ | ✓ | |||||||||||||||||||
| spi::SpiMaster | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
| spi::SpiSlave | ✓ | |||||||||||||||||||||
| symmetric_encryption::AES128 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| symmetric_encryption::AES128CBC | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| symmetric_encryption::AES128CCM | ✓ | ✓ | ✓ | |||||||||||||||||||
| symmetric_encryption::AES128Ctr | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| symmetric_encryption::AES128ECB | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||
| time::Alarm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| time::Counter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
| time::Frequency | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||||
| time::Time | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| time::Timer | ✓ | |||||||||||||||||||||
| uart::ReceiveAdvanced | ✓ | ✓ | ||||||||||||||||||||
| usb::UsbController | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |