[−][src]Crate cortex_m
Low level access to Cortex-M processors
This crate provides:
- Access to core peripherals like NVIC, SCB and SysTick.
- Access to core registers like CONTROL, MSP and PSR.
- Interrupt manipulation mechanisms
- Safe wrappers around Cortex-M specific instructions like
bkpt
Optional features
inline-asm
When this feature is enabled the implementation of all the functions inside the asm
and
register
modules use inline assembly (llvm_asm!
) instead of external assembly (FFI into separate
assembly files pre-compiled using arm-none-eabi-gcc
). The advantages of enabling inline-asm
are:
-
Reduced overhead. FFI eliminates the possibility of inlining so all operations include a function call overhead when
inline-asm
is not enabled. -
Some of the
register
API only becomes available only wheninline-asm
is enabled. Check the API docs for details.
The disadvantage is that inline-asm
requires a nightly toolchain.
Minimum Supported Rust Version (MSRV)
This crate is guaranteed to compile on stable Rust 1.36 and up. It might compile with older versions but that may change in any new patch release.
Re-exports
pub use crate::peripheral::Peripherals; |
Modules
asm | Miscellaneous assembly instructions |
interrupt | Interrupts |
itm | Instrumentation Trace Macrocell |
peripheral | Core peripherals |
register | Processor core registers |
Macros
iprint | Macro for sending a formatted string through an ITM channel |
iprintln | Macro for sending a formatted string through an ITM channel, with a newline. |
singleton | Macro to create a mutable reference to a statically allocated value |