diff --git a/README.md b/README.md index 208f25514..a9dd1d3c3 100644 --- a/README.md +++ b/README.md @@ -36,40 +36,26 @@ For information about the HAL and how to use it in your own projects, please ref - [The Rust on ESP Book](https://esp-rs.github.io/book/) - [Embedded Rust (no_std) on Espressif](https://esp-rs.github.io/no_std-training/) -## HAL Crates +## Crates -### High-Power Cores +### [esp-hal] -| Crate | Documentation | Technical Reference Manual | Target | MSRV | -| :-----------: | :------------------------------------------------: | :------------------------: | :-----------------------------: | :--------: | -| [esp32-hal] | [![esp32-hal-docs]](https://docs.rs/esp32-hal) | [ESP32] | `xtensa-esp32-none-elf` | ![esp] | -| [esp32c2-hal] | [![esp32c2-hal-docs]](https://docs.rs/esp32c2-hal) | [ESP32-C2] | `riscv32imc-unknown-none-elf` | ![nightly] | -| [esp32c3-hal] | [![esp32c3-hal-docs]](https://docs.rs/esp32c3-hal) | [ESP32-C3] | `riscv32imc-unknown-none-elf` | ![nightly] | -| [esp32c6-hal] | [![esp32c6-hal-docs]](https://docs.rs/esp32c6-hal) | [ESP32-C6] | `riscv32imac-unknown-none-elf` | ![nightly] | -| [esp32h2-hal] | [![esp32h2-hal-docs]](https://docs.rs/esp32h2-hal) | [ESP32-H2] | `riscv32imac-unknown-none-elf` | ![nightly] | -| [esp32p4-hal] | [![esp32p4-hal-docs]](https://docs.rs/esp32p4-hal) | [ESP32-P4] | `riscv32imafc-unknown-none-elf` | ![nightly] | -| [esp32s2-hal] | [![esp32s2-hal-docs]](https://docs.rs/esp32s2-hal) | [ESP32-S2] | `xtensa-esp32s2-none-elf` | ![esp] | -| [esp32s3-hal] | [![esp32s3-hal-docs]](https://docs.rs/esp32s3-hal) | [ESP32-S3] | `xtensa-esp32s3-none-elf` | ![esp] | +Implements number of the traits defined in [embedded-hal](https://github.com/rust-embedded/embedded-hal) for various ESP devices. Full list of currently supported devices with basic information is in the table below. +| Feature | Technical Reference Manual | Target | MSRV | +| :-----------: | :------------------------: | :-----------------------------: | :--------: | +| `esp32` | [ESP32] | `xtensa-esp32-none-elf` | ![esp] | +| `esp32c2` | [ESP32-C2] | `riscv32imc-unknown-none-elf` | ![stable] | +| `esp32c3` | [ESP32-C3] | `riscv32imc-unknown-none-elf` | ![stable] | +| `esp32c6` | [ESP32-C6] | `riscv32imac-unknown-none-elf` | ![stable] | +| `esp32h2` | [ESP32-H2] | `riscv32imac-unknown-none-elf` | ![stable] | +| `esp32p4` | [ESP32-P4] | `riscv32imafc-unknown-none-elf` | ![stable] | +| `esp32s2` | [ESP32-S2] | `xtensa-esp32s2-none-elf` | ![esp] | +| `esp32s3` | [ESP32-S3] | `xtensa-esp32s3-none-elf` | ![esp] | + +[esp-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp-hal [esp]: https://img.shields.io/badge/rustc-esp%201.74+-red.svg -[nightly]: https://img.shields.io/badge/rustc-nightly%202023/11/30+-red.svg - -[esp32-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32-hal -[esp32c2-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32c2-hal -[esp32c3-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32c3-hal -[esp32c6-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32c6-hal -[esp32h2-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32h2-hal -[esp32p4-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32p4-hal -[esp32s2-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32s2-hal -[esp32s3-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp32s3-hal -[esp32-hal-docs]: https://img.shields.io/docsrs/esp32-hal?color=C96329&logo=rust&style=flat-square -[esp32c2-hal-docs]: https://img.shields.io/docsrs/esp32c2-hal?color=C96329&logo=rust&style=flat-square -[esp32c3-hal-docs]: https://img.shields.io/docsrs/esp32c3-hal?color=C96329&logo=rust&style=flat-square -[esp32c6-hal-docs]: https://img.shields.io/docsrs/esp32c6-hal?color=C96329&logo=rust&style=flat-square -[esp32h2-hal-docs]: https://img.shields.io/docsrs/esp32h2-hal?color=C96329&logo=rust&style=flat-square -[esp32p4-hal-docs]: https://img.shields.io/docsrs/esp32p4-hal?color=C96329&logo=rust&style=flat-square -[esp32s2-hal-docs]: https://img.shields.io/docsrs/esp32s2-hal?color=C96329&logo=rust&style=flat-square -[esp32s3-hal-docs]: https://img.shields.io/docsrs/esp32s3-hal?color=C96329&logo=rust&style=flat-square +[stable]: https://img.shields.io/badge/rustc-stable%201.76+-red.svg [esp32]: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf [esp32-c2]: https://www.espressif.com/sites/default/files/documentation/esp8684_technical_reference_manual_en.pdf [esp32-c3]: https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf @@ -79,7 +65,10 @@ For information about the HAL and how to use it in your own projects, please ref [esp32-s2]: https://www.espressif.com/sites/default/files/documentation/esp32-s2_technical_reference_manual_en.pdf [esp32-s3]: https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf -### Low-Power Cores +### [esp-lp-hal] + +Implements a number of the traits defined in [embedded-hal](https://github.com/rust-embedded/embedded-hal) for the low-power (lp) RISC-V coprocessors found on the ESP32-C6, ESP32-S2, and ESP32-S3 from Espressif. The main idea is to have code running on lp core and putting the main core into sleep, making it more power-efficient. + | Crate | Documentation | Targets | | :----------: | :-----------------------: | :-----------------------------------------------------------: | @@ -88,6 +77,18 @@ For information about the HAL and how to use it in your own projects, please ref [esp-lp-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp-lp-hal +### [esp-hal-procmacros] + +Procedural macros for use with the esp-hal family of HAL packages. + +[esp-hal-procmacros]: https://github.com/esp-rs/esp-hal/tree/main/esp-hal-procmacros + +### [esp-riscv-rt] + +Minimal runtime / startup for RISC-V CPUs from Espressif. + +[esp-riscv-rt]: https://github.com/esp-rs/esp-hal/tree/main/esp-riscv-rt + ## Ancillary Crates There are a number of other crates within the [esp-rs organization] which can be used in conjunction with `esp-hal`: