mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-30 13:50:38 +00:00

* Un-comment remaining device peripheral definitions for ESP32-H2 * Re-work `RadioExt` implementations, add support for ESP32-H2 * README updates for ESP32-C6/H2 * Update CHANGELOG
77 lines
3.1 KiB
Markdown
77 lines
3.1 KiB
Markdown
# esp32h2-hal
|
|
|
|
[](https://crates.io/crates/esp32h2-hal)
|
|
[](https://docs.rs/esp32h2-hal)
|
|

|
|
[](https://matrix.to/#/#esp-rs:matrix.org)
|
|
|
|
`no_std` HAL for the ESP32-H2 from Espressif. Implements a number of the traits defined by [embedded-hal](https://github.com/rust-embedded/embedded-hal).
|
|
|
|
This device uses the RISC-V ISA, which is officially supported by the Rust compiler via the `riscv32imac-unknown-none-elf` target. Refer to the [Getting Started](#getting-started) section below for more information.
|
|
|
|
## [Documentation]
|
|
|
|
[documentation]: https://docs.rs/esp32h2-hal/
|
|
|
|
## Getting Started
|
|
|
|
### Installing the Rust Compiler Target
|
|
|
|
The compilation target for this device is officially supported via the `stable` release channel and can be installed via [rustup](https://rustup.rs/):
|
|
|
|
```shell
|
|
$ rustup target add riscv32imac-unknown-none-elf
|
|
```
|
|
|
|
### Supported boot methods
|
|
|
|
#### IDF Bootloader
|
|
|
|
The [IDF second stage bootloader](https://docs.espressif.com/projects/esp-idf/en/latest/esp32h2/api-guides/startup.html#second-stage-bootloader) is the default bootloader solution.
|
|
|
|
By default, [espflash](https://github.com/esp-rs/espflash) fetches the required binaries (Bootloader and Partition Table) and flashes them onto the target device together with the Rust-based application firmware image.
|
|
|
|
#### Direct Boot
|
|
|
|
[Direct Boot](https://github.com/espressif/esp32c3-direct-boot-example#direct-boot-in-esp32-c3) allows an application stored in the External Flash to be executed directly, without being copied into Internal RAM.
|
|
|
|
##### Booting the Hello World example using Direct Boot
|
|
|
|
Build the Hello World example with support for Direct Boot:
|
|
|
|
```shell
|
|
cargo build --release --example hello_world --features direct-boot
|
|
```
|
|
|
|
Then proceed to generating the application binary and flashing it onto the target device:
|
|
|
|
```shell
|
|
cargo espflash --release --format direct-boot --features direct-boot --example hello_world --monitor
|
|
```
|
|
|
|
The ROM Bootloader will identify the firmware image built with Direct Boot support and load it appropriately from the External Flash:
|
|
|
|
```shell
|
|
ESP-ROM:esp32h2-20221101
|
|
Build:Nov 1 2022
|
|
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
|
|
Hello world!
|
|
Hello world!
|
|
Hello world!
|
|
```
|
|
|
|
## License
|
|
|
|
Licensed under either of:
|
|
|
|
- Apache License, Version 2.0 ([LICENSE-APACHE](../LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
|
- MIT license ([LICENSE-MIT](../LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
|
|
|
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.
|