#esp32 #runtime #startup #esp32-hal

nightly macro no-std esp32-hal-proc-macros

Attributes re-exported in esp32-hal

2 unstable releases

0.2.0 Sep 23, 2020
0.1.0 Sep 15, 2020

#18 in #startup

Download history 57/week @ 2022-08-10 18/week @ 2022-08-17 20/week @ 2022-08-24 29/week @ 2022-08-31 32/week @ 2022-09-07 60/week @ 2022-09-14 37/week @ 2022-09-21 21/week @ 2022-09-28 44/week @ 2022-10-05 11/week @ 2022-10-12 6/week @ 2022-10-19 32/week @ 2022-10-26 36/week @ 2022-11-02 31/week @ 2022-11-09 39/week @ 2022-11-16 14/week @ 2022-11-23

121 downloads per month


329 lines


Crates.io docs.rs Crates.io Matrix

Minimal runtime/startup for Xtensa LX processors. This crate currently supports the following CPU's:

Feature Supported CPUs
esp32 ESP32 (LX6)
esp32s2 ESP32-S2 (LX7)
esp32s3 ESP32-S3 (LX7)
esp8266 ESP8266 (LX106)

I get linker errors when I build for debug

Xtensa only provides a small code space for exceptions to fit inside, when building an unoptimized build the code size of a exception handler may exceed that size, causing a linker error. To fix this, you should always optimize this crate, even in debug builds. Adding the following to your projects Cargo.toml should do the trick.

opt-level = 'z'


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~21K SLoC