Crate esp32c2_hal
source ·Expand description
no_std
HAL for the ESP32-C2/ESP8684 from Espressif.
Implements a number of the traits defined by the various packages in the embedded-hal repository.
Cargo Features
async
- Enable support for asynchronous operation, with interfaces provided by embedded-hal-async and embedded-io-asyncdebug
- Enable debug features in the HAL (used for development)defmt
- Enabledefmt::Format
on certain typesdirect-boot
- Use the direct boot image formatdirect-vectoring
- Enable direct vector table hooking supporteh1
- Implement the traits defined in the1.0.0-xxx
pre-releases of embedded-hal, embedded-hal-nb, and embedded-ioembassy
- Enable support for embassy, a modern asynchronous embedded framework. One ofembassy-time-*
features must also be enabled when using this feature.embassy-time-systick
- Enable the embassy time driver using theSYSTIMER
peripheralembassy-time-timg0
- Enable the embassy time driver using theTIMG0
peripheralinterrupt-preemption
- Enable priority-based interrupt preemptionlog
- enable log output using thelog
cratert
- Runtime supportufmt
- Implement theufmt_write::uWrite
trait for the UART and USB Serial JTAG driversvectored
- Enable interrupt vectoringxtal-26mhz
- The target device uses a 26MHz crystalxtal-40mhz
- The target device uses a 40MHz crystal
Default Features
The rt
, vectored
, and xtal-40mhz
features are enabled by default.
Supported Image Formats
This HAL supports building multiple different application image formats. You can read about each below.
The ESP-IDF Bootloader format is used unless some other format is specified via its feature.
ESP-IDF Bootloader
Use the second-stage bootloader from ESP-IDF and its associated application image format. See the App Image Format documentation for more information about this format.
Direct Boot
This device additionally supports direct-boot, which allows an application to be executed directly from flash, without using the second-stage bootloader. For more information please see the esp32c3-direct-boot-example in the Espressif organization on GitHub.
Modules
- Analog peripherals
- Debug Assistant
- Clock Control
- Delay driver
- Direct Memory Access Commons
- ECC Accelerator
- Reading of eFuses (ESP32-C2)
- Minimal startup / runtime for RISC-V CPUs from Espressif
- General Purpose I/Os
- I2C Driver
- Interrupt support
- LEDC (LED PWM Controller) peripheral control
- Overview
- Exclusive peripheral access
- Peripheral instance singletons (ESP32-C2)
- The prelude
- Hardware and Software Reset
- Random Number Generator
- ESP ROM libraries
- RTC_CNTL (Real-Time Clock Control) and Low-power Management
- Secure Hash Algorithm peripheral driver
- Serial Peripheral Interface
- System Control
- System Timer peripheral driver
- General-purpose timers
- State of the CPU saved when entering exception or interrupt
- UART driver
Structs
- Delay driver
- FlashSafeDma
- General Purpose Input/Output driver
- Random number generator driver
- Low-power Management
- RTC Watchdog Timer
- General-purpose Timer driver
- UART driver
- UART RX
- UART TX
Enums
- Available CPU cores
Functions
- Which core the application is currently executing on
Attribute Macros
- Attribute to declare the entry point of the program