back to home

esp-rs / esp-hal

no_std Hardware Abstraction Layers for ESP32 microcontrollers

1,790 stars
414 forks
286 issues
RustLinker ScriptRPC

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing esp-rs/esp-hal in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/esp-rs/esp-hal)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

esp-hal Bare-metal ( ) hardware abstraction layer for Espressif devices. Currently supports 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 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 file. If you have any questions, comments, or concerns, please [open an issue], or join us on [Matrix]. If you are currently using (or considering using) in a production environment and have any feedback or require support, please feel free to contact us at . > [!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. [esp-lp-hal]: https://github.com/esp-rs/esp-hal/tree/main/esp-lp-hal [esp-idf-svc]: https://github.com/esp-rs/esp-idf-svc [open an issue]: https://github.com/esp-rs/esp-hal/issues/new [matrix]: https://matrix.to/#/#esp-rs:matrix.org 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 release you are using to ensure compatibility, e.g. [esp-hal-v1.0.0], as the branch is used for development and APIs may have changed in the meantime. [The Rust on ESP Book]: https://docs.espressif.com/projects/rust/book/ [documentation]: https://docs.espressif.com/projects/rust/ [esp-hal-v1.0.0]: https://github.com/esp-rs/esp-hal/tree/esp-hal-v1.0.0/examples Resources • The Rust Programming Language • The Embedded Rust Book • The Embedonomicon • The Rust on ESP Book • Embedded Rust (no_std) on Espressif Support policy All active development will occur on . We will only backport fixes to the _latest_ minor release in a major version. For example, this means we will apply patches (bug fixes) to until is released, at which point all patches are only backported to the series of releases. If you are a user of APIs, we will never push breaking changes in a patch release. However, changes _will_ make their way into minor releases. This means that as an user updating from to _may_ introduce breaking changes. If you depend on , we recommend defining your esp-hal dependency as follows: Using the operator will prevent cargo auto updating to minor versions, allowing you to use without the possibility of breaking your project. AI Contribution Policy We follow the same policy as the official Rust Embedded working group, please review the policy before contributing with AI tools. Contributing We have a number of living documents to aid contributing to the project, please give these a read before modifying code: • DEVELOPER-GUIDELINES • CONTRIBUTING-GUIDE 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.