[−][src]Crate cortex_a
Low level access to Cortex-A processors.
Currently Supported Architectures
- [x] AArch64
- [ ] AArch32
Minimum Supported Rust Version
Requires rustc 1.45.0 or later due to use of the new asm!()
syntax.
Usage
Example from https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials
unsafe fn el2_to_el1_transition() -> ! { // Enable timer counter registers for EL1. CNTHCTL_EL2.write(CNTHCTL_EL2::EL1PCEN::SET + CNTHCTL_EL2::EL1PCTEN::SET); // No offset for reading the counters. CNTVOFF_EL2.set(0); // Set EL1 execution state to AArch64. HCR_EL2.write(HCR_EL2::RW::EL1IsAarch64); // Set up a simulated exception return. SPSR_EL2.write( SPSR_EL2::D::Masked + SPSR_EL2::A::Masked + SPSR_EL2::I::Masked + SPSR_EL2::F::Masked + SPSR_EL2::M::EL1h, );
Disclaimer
Descriptive comments in the source files are taken from the ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile.
Modules
asm | Miscellaneous assembly instructions |
barrier | |
regs | Processor core registers |