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. One of embassy-time-* features must also be enabled when using this feature.
  • 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
  • xtal-26mhz - The target device uses a 26MHz crystal
  • xtal-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

Enums

  • Available CPU cores

Functions

  • Which core the application is currently executing on

Attribute Macros

  • Attribute to declare the entry point of the program