Expand description
§esp-rom-sys
ROM code support. This is an implementation detail of the esp-hal ecosystem crates.
This includes the definition of ROM code function addresses.
For some targets (ESP32 currently) we will use libesp_rom.a from ESP-IDF. The code here corresponds to ESP-IDF v5.3.1
Since there can be only one version of this crate used in a dependency tree this is expected to never see a major version bump. (i.e. all releases are patch releases)
That said, we cannot remove anything here. Degrading a symbol from hard linkage to weak linkage is allowed.
§Dependency policy in the esp-hal workspace
The workspace intentionally uses two dependency strategies for esp-rom-sys:
- Most crates use a non-exact requirement on the
0.1.xline (for example~0.1/~0.1.x), so they can consume compatible patch updates. - Crates that are tightly coupled to a specific radio/blob behavior pin an exact
esp-rom-syspatch version (currentlyesp-radio).
Only one exact esp-rom-sys pin should exist in the dependency graph at a
time. This keeps Cargo resolution deterministic for radio stacks while
preserving patch-level flexibility for other crates.
§Documentation
§Minimum Supported Rust Version (MSRV)
This crate is guaranteed to compile when using the latest stable Rust version at the time of the crate’s release. It might compile with older versions, but that may change in any new release, including patches.
§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.
§Feature Flags
§Chip selection
One of the following features must be enabled to select the target chip:
esp32esp32c2esp32c3esp32c5esp32c6esp32c61esp32h2esp32p4esp32s2esp32s3esp32s31
Modules§
- rom
- Wrappers for selected ROM functions
Structs§
- _reent
- Reentrancy struct.
Statics§
- SYSCALL_
TABLE - The syscall table that ROM functions use.
Functions§
- init_
syscall_ ⚠table - Initialize the syscall table.