async
mode for each service (async
support where feasible)You might want to also check out the ESP IDF Drivers wrappers, and the raw bindings to ESP IDF in the esp-idf-sys crate!
Follow the Prerequisites section in the esp-idf-template
crate.
The examples could be built and flashed conveniently with cargo-espflash
. To run e.g. wifi
on an e.g. ESP32-C3:
(Swap the Rust target and example name with the target corresponding for your ESP32 MCU and with the example you would like to build)
with cargo-esptool v1.7:
$ ESP_IDF_VERSION=release/v4.4 cargo espflash --target riscv32imc-esp-espidf --example wifi --monitor /dev/ttyUSB0
with cargo-esptool v2.0:
$ ESP_IDF_VERSION=release/v4.4 cargo espflash flash --target riscv32imc-esp-espidf --example wifi --monitor
Use the esp-idf-template project. Everything would be arranged and built for you automatically - no need to manually clone the ESP IDF repository.
For more information, check out: * The Rust on ESP Book * The ESP Embedded Training * The esp-idf-template project * The embedded-svc project * The esp-idf-hal project * The embedded-hal project * The esp-idf-sys project * The Rust for Xtensa toolchain * The Rust-with-STD demo project