2 unstable releases
| 0.2.0 | Jan 21, 2026 |
|---|---|
| 0.1.0 | Oct 31, 2025 |
#1549 in Embedded development
690 downloads per month
Used in 6 crates
(3 directly)
390KB
9K
SLoC
Support for AArch32 Arm Processors
This crate provides access to CPU registers and common peripherals for:
- Legacy Arm Processors, like the ARM7TDMI and ARM926
- Armv7-R Processors, like the Arm Cortex-R5
- Armv8-R AArch32 Processors, like the Arm Cortex-R52
- Armv7-A Processors, like the Arm Cortex-A5
- Armv8-A AArch32 Processors, like the Arm Cortex-A53 running in 32-bit mode
It does not support any M-Profile Processors (like the Arm Cortex-M3) as they have a fundamentally different interrupt vector table.
It also does not support processors running in AArch64 mode - A64 machine code uses different instructions for reading/writing system registers.
This crate contains:
- Raw register access to many AArch32 system registers
- A driver for the PMSAv7 Memory Protection Unit (MPU)
- A driver for the PMSAv8-R Memory Protection Unit (MPU)
- A driver for the Arm Generic Timer
If you need a driver for the Arm Generic Interrupt Controller, see https://github.com/ArmFirmwareCrates/arm-gic.
Minimum Supported Rust Version (MSRV)
This crate is guaranteed to compile on stable Rust 1.83.0 and up, as recorded
by the package.rust-version property in Cargo.toml.
Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from 0.3.0 to 0.3.1, because this is still a
0.x release).
Licence
- Copyright (c) Ferrous Systems
- Copyright (c) The Rust Embedded Devices Working Group developers
Licensed under either MIT or Apache-2.0 at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.
Dependencies
~0.4–1MB
~18K SLoC