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-async
  • debug - Enable debug features in the HAL (used for development)
  • defmt - Enable defmt::Format on certain types
  • direct-boot - Use the direct boot image format
  • direct-vectoring - Enable direct vector table hooking support
  • eh1 - Implement the traits defined in the 1.0.0-xxx pre-releases of embedded-hal, embedded-hal-nb, and embedded-io
  • embassy - Enable support for embassy, a modern asynchronous embedded framework
  • embassy-time-systick - Enable the embassy time driver using the SYSTIMER peripheral
  • embassy-time-timg0 - Enable the embassy time driver using the TIMG0 peripheral
  • interrupt-preemption - Enable priority-based interrupt preemption
  • log - enable log output using the log crate
  • rt - Runtime support
  • ufmt - Implement the ufmt_write::uWrite trait for the UART and USB Serial JTAG drivers
  • vectored - Enable interrupt vectoring
  • xtal26mhz - The target device uses a 26MHz crystal
  • xtal40mhz - The target device uses a 40MHz crystal
Default Features

The rt, vectored, and xtal40mhz 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

  • Common module for analog functions
  • Debug Assistant
  • Clock Control
  • Delay driver
  • Direct Memory Access Commons
  • 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
  • Procedural macros
  • Exclusive peripheral access
  • Peripheral instance singletons (ESP32-C2)
  • The prelude
  • Wireless communication peripheral implementations
  • 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
  • SPI peripheral driver
  • General-purpose Timer driver
  • UART driver

Enums

  • Available CPU cores

Functions

  • Which core the application is currently executing on

Attribute Macros

  • Attribute to declare the entry point of the program