The ROM code _data_ section is loaded into the middle of the DRAM address space, unlike the other chips where it is loaded at the end. Therefore subtracting the previously "reserved" section from heap end could actually corrupt the ROM data section. For the ESP32, the DRAM block has been split into two individual segments, with some reserved segments in the middle (addresses taken from esp-idf). At the moment we don't use the second segment at all in esp-hal, but we could utilize it in esp-wifi for placing the internal allocator for example. |
||
|---|---|---|
| .. | ||
| .cargo | ||
| examples | ||
| ld | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| README.md | ||
| rust-toolchain.toml | ||
esp32-hal
no_std HAL for the ESP32 from Espressif. Implements a number of the traits defined by embedded-hal.
This device uses the Xtensa ISA, which is not officially supported by the Rust compiler. In order to develop for this device, you must use the Rust compiler fork with Xtensa support found at esp-rs/rust. Refer to the Getting Started section below for more information.
Documentation
Getting Started
Installing the Rust Compiler
cargo install espup
espup install
# Unix
. $HOME/export-esp.sh
# Windows does not require sourcing any file
See the Installation chapter of The Rust on ESP Book for more details.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (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.