[package] name = "esp32s3-hal" version = "0.15.0" edition = "2021" rust-version = "1.67.0" description = "HAL for ESP32-S3 microcontrollers" repository = "https://github.com/esp-rs/esp-hal" license = "MIT OR Apache-2.0" keywords = [ "embedded", "embedded-hal", "esp", "esp32s3", "no-std", ] categories = [ "embedded", "hardware-support", "no-std", ] [dependencies] document-features = "0.2.7" esp-hal = { version = "0.15.0", features = ["esp32s3"], path = "../esp-hal" } r0 = { version = "1.0.0", optional = true } embassy-time-driver = { version = "0.1.0", optional = true } [dev-dependencies] aes = "0.8.3" critical-section = "1.1.2" crypto-bigint = { version = "0.5.5", default-features = false } embassy-executor = { version = "0.5.0", features = ["nightly"] } embassy-sync = "0.5.0" embassy-time = "0.3.0" embedded-graphics = "0.8.1" embedded-hal = { version = "0.2.7", features = ["unproven"] } embedded-hal-1 = { version = "1.0.0", package = "embedded-hal" } embedded-hal-async = "1.0.0" embedded-can = "0.4.1" embedded-io-async = "0.6.1" embedded-hal-bus = "0.1.0" esp-alloc = "0.3.0" esp-backtrace = { version = "0.10.0", features = ["esp32s3", "panic-handler", "exception-handler", "print-uart"] } esp-hal-smartled = { version = "0.8.0", features = ["esp32s3"], path = "../esp-hal-smartled" } esp-println = { version = "0.8.0", features = ["esp32s3"] } heapless = "0.8.0" hmac = { version = "0.12.1", default-features = false } lis3dh-async = "0.9.1" sha2 = { version = "0.10.8", default-features = false } smart-leds = "0.4.0" ssd1306 = "0.8.4" static_cell = { version = "2.0.0", features = ["nightly"] } usb-device = "0.3.1" usbd-serial = "0.2.0" [features] default = ["embassy-integrated-timers", "rt", "vectored"] ## Enable debug features in the HAL (used for development). debug = ["esp-hal/debug"] ## Enable logging output using the `log` crate. log = ["esp-hal/log", "esp-println/log"] ## Enable runtime support. rt = ["esp-hal/rt-xtensa"] ## Enable interrupt vectoring. vectored = ["esp-hal/vectored"] #! ### Trait Implementation Feature Flags ## Enable support for asynchronous operation, with interfaces provided by ## `embedded-hal-async` and `embedded-io-async`. async = ["esp-hal/async"] ## Implement `defmt::Format` on certain types. defmt = ["esp-hal/defmt", "esp-println/defmt-espflash"] ## Implement the traits defined in the `1.0.0` releases of `embedded-hal` and ## `embedded-hal-nb` for the relevant peripherals. eh1 = ["esp-hal/eh1"] ## Implement the traits defined in `embedded-io` for certain peripherals. embedded-io = ["esp-hal/embedded-io"] ## Implement the `ufmt_write::uWrite` trait for certain peripherals. ufmt = ["esp-hal/ufmt"] #! ### PSRAM Feature Flags psram = [] ## Use externally connected PSRAM (2MB). psram-2m = ["esp-hal/psram-2m", "psram"] ## Use externally connected PSRAM (4MB). psram-4m = ["esp-hal/psram-4m", "psram"] ## Use externally connected PSRAM (8MB). psram-8m = ["esp-hal/psram-8m", "psram"] ## Connected PSRAM has 80MHz frequency. psram-80mhz = ["esp-hal/psram-80mhz"] #! ### Octal RAM Feature Flags ## Use externally connected Octal RAM (2MB). opsram-2m = ["esp-hal/opsram-2m", "psram"] ## Use externally connected Octal RAM (4MB). opsram-4m = ["esp-hal/opsram-4m", "psram"] ## Use externally connected Octal RAM (8MB). opsram-8m = ["esp-hal/opsram-8m", "psram"] ## Use externally connected Octal RAM (16MB). opsram-16m = ["esp-hal/opsram-16m", "psram"] #! ### Embassy Feature Flags ## Enable support for `embassy`, a modern asynchronous embedded framework. embassy = ["esp-hal/embassy"] ## Use the interrupt-mode embassy executor. embassy-executor-interrupt = ["esp-hal/embassy-executor-interrupt"] ## Use the thread-mode embassy executor. embassy-executor-thread = ["esp-hal/embassy-executor-thread"] ## Uses hardware timers as alarms for the executors. Using this feature ## limits the number of executors to the number of hardware alarms provided ## by the time driver. embassy-integrated-timers = ["esp-hal/embassy-integrated-timers"] ## Enable the embassy time driver using the `SYSTIMER` peripheral. The ## `SYSTIMER` peripheral has three alarams available for use. embassy-time-systick = ["esp-hal/embassy-time-systick", "embassy-time-driver/tick-hz-16_000_000"] ## Enable the embassy time driver using the `TIMG0` peripheral. The `TIMG0` ## peripheral has two alarms available for use. embassy-time-timg0 = ["esp-hal/embassy-time-timg0", "embassy-time-driver/tick-hz-1_000_000"] [profile.release] debug = true [[example]] name = "spi_eh1_loopback" required-features = ["eh1"] [[example]] name = "spi_eh1_device_loopback" required-features = ["eh1"] [[example]] name = "embassy_hello_world" required-features = ["embassy", "embassy-executor-thread"] [[example]] name = "embassy_multicore" required-features = ["embassy", "embassy-executor-thread"] [[example]] name = "embassy_multicore_interrupt" required-features = ["embassy", "embassy-executor-interrupt"] [[example]] name = "embassy_multiprio" required-features = ["embassy", "embassy-executor-interrupt"] [[example]] name = "embassy_wait" required-features = ["embassy", "embassy-executor-thread", "async"] [[example]] name = "embassy_spi" required-features = ["embassy", "embassy-executor-thread", "async"] [[example]] name = "psram" required-features = ["psram-2m"] [[example]] name = "octal_psram" required-features = ["opsram-2m"] [[example]] name = "embassy_serial" required-features = ["embassy", "embassy-executor-thread", "async"] [[example]] name = "embassy_i2c" required-features = ["embassy", "embassy-executor-thread", "async"] [[example]] name = "embassy_rmt_tx" required-features = ["embassy", "async"] [[example]] name = "embassy_rmt_rx" required-features = ["embassy", "async"] [[example]] name = "embassy_i2s_sound" required-features = ["embassy", "async"] [[example]] name = "embassy_i2s_read" required-features = ["embassy", "async"] [[example]] name = "embassy_usb_serial_jtag" required-features = ["embassy", "async"]