#xtensa #register #peripheral #low-level #debugging #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

#1710 in Embedded development

Download history 3621/week @ 2023-12-04 3943/week @ 2023-12-11 2912/week @ 2023-12-18 2333/week @ 2023-12-25 2403/week @ 2024-01-01 2338/week @ 2024-01-08 2472/week @ 2024-01-15 2673/week @ 2024-01-22 2244/week @ 2024-01-29 2362/week @ 2024-02-05 2415/week @ 2024-02-12 2645/week @ 2024-02-19 2698/week @ 2024-02-26 2907/week @ 2024-03-04 4003/week @ 2024-03-11 4104/week @ 2024-03-18

14,016 downloads per month
Used in 16 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