Crate cortex_m[−][src]
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
Requirements
To use this crate on the stable or beta channel arm-none-eabi-gcc needs to be installed and
available in your $PATH.
Optional features
inline-asm
When this feature is enabled the implementation of all the functions inside the asm and
register modules use inline assembly (asm!) instead of external assembly (FFI into separate
assembly files compiled using arm-none-eabi-gcc). The advantages the enabling inline-asm
are:
-
Reduced overhead. FFI eliminates the possibility of inlining so all operations include a function call overhead when
inline-asmis not enabled. -
arm-none-eabi-gccis not required for building this crate. -
Some of the
registerAPI only becomes available only wheninline-asmis enabled. Check the API docs for details.
The disadvantage is that inline-asm requires a nightly toolchain.
const-fn
Enabling this feature turns the Mutex.new constructor into a const fn.
This feature requires a nightly toolchain.
Re-exports
pub use 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 |