#xtensa #register #peripheral #low-level #lx

nightly no-std xtensa-lx-rt

Low level access for Xtensa LX processors

11 breaking releases

0.16.0 Aug 28, 2023
0.15.0 Feb 10, 2023
0.14.0 Dec 2, 2022
0.13.0 Jul 20, 2022
0.5.0 Sep 19, 2020

#1856 in Embedded development

Download history 3426/week @ 2024-04-05 4172/week @ 2024-04-12 3483/week @ 2024-04-19 3761/week @ 2024-04-26 2676/week @ 2024-05-03 2639/week @ 2024-05-10 3154/week @ 2024-05-17 3801/week @ 2024-05-24 3013/week @ 2024-05-31 2398/week @ 2024-06-07 3020/week @ 2024-06-14 2944/week @ 2024-06-21 3209/week @ 2024-06-28 3000/week @ 2024-07-05 4023/week @ 2024-07-12 3439/week @ 2024-07-19

14,278 downloads per month
Used in 23 crates (4 directly)

MIT/Apache

545KB
17K SLoC

C 15K SLoC // 0.0% comments Rust 2K SLoC // 0.0% comments Alex 112 SLoC

xtensa-lx-rt

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.

[profile.dev.package.xtensa-lx-rt]
opt-level = 'z'

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~0.6–1.5MB
~32K SLoC