
esp-phy
crate. (#3892)
* Minimal infrastructure * Implemented dig reg backup. * usb bbpll * Removed default feature. * OS adapter tweaks * Fixed S2 and implemented PhyController * Added manual deinit. * Fixed linker scripts and migrated esp-radio to esp-phy * Fixed warnings. * Fixed NPL * Tried fixing NPL again * Fixed ieee802154 * Fixed reading chip version of S3. * fmt * Added changelog entry * Added changelog for esp-radio * Deleted chip specific common adapters. * Added docs and unstable * Migrated cal data load/store to esp-phy * Fixed PHY cal CI error * Removed instability * Removed feature from esp-phy * fmt * Fixed esp-sync docs. * Removed log with CONFIG * Removed nonreentrantmutex from common adapter * Disable reset for radio blocks where required. * Fixed cfg_if for s2 * fmt * Added bt_bb_v2_init_cmplx to phy_provides.x * Added CHANGELOG * Moved EXTERN and fixed comment. * Fixed lint * Fixed common adapter again. * Docs and Readme. * Fixed ref count. * This time pls. * Added MAC time update CB for esp-radio * fixed field init * Fixed inconsistency in metadata * Removed useless changelog entry * Fixed S2. * Swaped addr_of for &raw mut * Properly initialize NVS * Fixed lint * Fixed C6 * Fixed remaining issues * Fixed CI * Added link * Updated esp-wifi-sys in esp-phy * Address reviews * Renamed PHY lock * Moved syscon let in common_adapter * Fmt * Remove critical_section * Don't steal when not necessary * Added esp-phy changelog to workflow * Add cargo metadata for esp-phy * Added reference to #4015 * Refixed Cargo.toml --------- Co-authored-by: Dániel Buga <bugadani@gmail.com>
esp-hal
Bare-metal (no_std
) hardware abstraction layer for Espressif devices. Currently supports, to varying degrees, the following devices:
- ESP32 Series: ESP32
- ESP32-C Series: ESP32-C2, ESP32-C3, ESP32-C6
- ESP32-H Series: ESP32-H2
- ESP32-S Series: ESP32-S2, ESP32-S3
Additionally provides limited support for programming the low-power RISC-V cores found on the ESP32-C6, ESP32-S2, and ESP32-S3 via the esp-lp-hal package.
For additional information regarding any of the crates in this repository, please refer to the relevant crate's README.md
file. If you have any questions, comments, or concerns, please open an issue, start a new discussion, or join us on Matrix.
If you are currently using (or considering using) esp-hal
in a production environment and have any feedback or require support, please feel free to contact us at rust.support@espressif.com.
Note
This repository includes crates that are at various stages of maturity and stability. While many functionalities have already been implemented and are usable for most tasks, certain advanced or less common features may still be under development. Each crate may offer different levels of functionality and guarantees.
Getting Started
For information relating to the development of Rust applications on ESP devices, please first read The Rust on ESP Book.
For information about the HAL and how to use it in your own projects, please refer to the documentation.
When browsing the examples, we recommend viewing the tag for the esp-hal
release you are using to ensure compatibility, e.g. esp-hal-v1.0.0-beta.0, as the main
branch is used for development and APIs may have changed in the meantime.
Resources
- The Rust Programming Language
- The Embedded Rust Book
- The Embedonomicon
- The Rust on ESP Book
- Embedded Rust (no_std) on Espressif
Contributing
We have a number of living documents to aid contributing to the project, please give these a read before modifying code:
License
All packages within this repository are 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 notice
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.