Low level access to Cortex-A processors

Currently Supported Execution States

cortex-a

Low level access to Cortex-A processors.

Currently Supported Execution States

  • AArch64
  • AArch32

Minimum Supported Rust Version

Requires a recent nightly of Rust if the (default) nightly feature is enabled. Without this the register access module is not available.

Usage

Please note that for using this crate's register definitions (as provided by cortex_a::registers::*), you need to also include tock-registers in your project. This is because the interface traits provided by tock-registers are implemented by this crate. You should include the same version of tock-registers as is being used by this crate to ensure sane interoperatbility.

For example, in the following snippet, X.Y.Z should be the same version of tock-registers that is mentioned in cortex-a's Cargo.toml.

Example

Check out https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials for usage examples. Listed below is a snippet of rust-raspberrypi-OS-tutorials's early boot code.

Disclaimer

Descriptive comments in the source files are taken from the ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile.

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.

Issues

Collection of the latest Issues

Versions

Find the latest versions by id

v7.4.0 - Jun 18, 2022

What's Changed

New Contributors

Full Changelog: https://github.com/rust-embedded/cortex-a/compare/v7.3.1...v7.4.0

v7.3.1 - May 24, 2022

What's Changed

Full Changelog: https://github.com/rust-embedded/cortex-a/compare/v7.3.0...v7.3.1

v7.3.0 - May 23, 2022

What's Changed

New Contributors

Full Changelog: https://github.com/rust-embedded/cortex-a/compare/v7.2.0...v7.3.0

v7.2.0 - Mar 18, 2022

Added registers:

  • CNTV_CVAL_EL0
  • VBAR_EL2
  • OSLAR_EL1

Extended:

  • HCR_EL2

v7.1.0 - Mar 10, 2022

Added the frame pointer register.

v7.0.1 - Jan 15, 2022

v7.0.0 - Dec 17, 2021

v6.1.0 - Aug 07, 2021

v6.0.0 - Jul 05, 2021

With the release of tock-registers 0.7.0, the main dependency of this crate, register-rs, became obsolete. So we exchanged this crate's dependency to tock-registers only.

register-rs always was a wrapper around tock-registers, adding the same semantics and interfaces that tock-registers provided for MMIO to CPU registers as well. With 0.7.0, this can be achieved with tock-registers alone. Depending on tock-registers alone now is also a win for the cortex-a crate itself, because tock-registers is better and more regularly maintained.

Please take notice of the new usage guidelines in the README when adding this crate as a dependency to your project.

The switch to tock-registers obviously was a breaking change. So while we were at it, two other things were changed:

  1. cortex_a::regs::* is now cortex_a::registers::*.
  2. barrier instructions were moved inside the asm path: cortex_a::barrier became cortex_a::asm::barrier.

Information - Updated Jun 23, 2022

Stars: 113
Forks: 36
Issues: 3

rust_embedded_starter

Boilerplate für Embedded Entwicklung mit Rust mit Flash und Debug automatik

rust_embedded_starter

Embedded rust HAL (hardware abstraction layer) for the STM32WL

This is a work in progress, it is unstable, incomplete, and (mostly) untested

Embedded rust HAL (hardware abstraction layer) for the STM32WL

Embedded Rust Template

This template is based on stm32f4xx-hal

Embedded Rust Template

A Rust embedded-hal HAL for all MCUs in the STM32 F7 family

This crate is largely inspired by the awesome work done here:

A Rust embedded-hal HAL for all MCUs in the STM32 F7 family

For use with the AnyLeaf pH and RTD sensors in Rust on embedded systems, and...

For use with the AnyLeaf pH and RTD sensors in Rust on embedded systems, and single-board computers

For use with the AnyLeaf pH and RTD sensors in Rust on embedded systems, and...

An embedded rust no_std driver for the AHT20 temperature and humidity sensor, forked from Anthony...

An embedded rust no_std driver for the AHT20 temperature and humidity sensor, forked from Anthony Romano's docs

An embedded rust no_std driver for the AHT20 temperature and humidity sensor, forked from Anthony...

embedded-rust-H2AL

Hardware abstraction layer - abstraction layer

embedded-rust-H2AL

cargo-pio = Cargo + PlatformIO

Build Rust embedded projects with PlatformIO!

cargo-pio = Cargo + PlatformIO
Facebook Instagram Twitter GitHub Dribbble
Privacy