cortex-m
cortex-m copied to clipboard
Low level access to Cortex-M processors
``` rust interrupt::disable(); let mut p = defmt::unwrap!(cortex_m::Peripherals::take()); p.DCB.enable_trace(); p.DWT.enable_cycle_counter(); let start = DWT::get_cycle_count(); cortex_m::asm::delay(1_000_000); let end = DWT::get_cycle_count(); defmt::info!("{:?}", end - start); ``` This snippet prints `1_500_000` with cortex-m...
Due to the semver trick (was that the name?) v0.6.5, and later v0.6.x releases, depend on v0.7.x. This means that if you use v0.6.5 you may observe changes in behavior...
Hello :crab:, when running the program below that repeatedly calls `iprintln!()`, it always stops printing at the same point in code, not finishing the printing tasks. It should print "Hello...
Various cache maintenance-related operations require a `self` reference, which means that it is not possible for a HAL or other peripherals to clean/invalidate and/or perform other cache related operations without...
Part of https://github.com/rust-embedded/wg/issues/383 Blockers: * [x] rust-embedded/cortex-m-semihosting#49 – `interrupt::free` is not enough to access `static mut` safely
or refactor common code into another crate to make it easier to port to other architectures basically the only thing that needs to change to make this semihosting library work...
Currently it's not possible to run code that contains semihosting calls without having a debugger attached, since semihosting relies on the debugger catching `bkpt 0xab` and without a debugger, this...
virtual unwinders (\*), for example based on `gimli::{DebugFrame,UnwindSection}`, are not able to unwind through external assembly subroutines like `__nop` because these subroutines lack [CFI](https://sourceware.org/binutils/docs/as/CFI-directives.html) (Call Frame Information), which -- when...
I started the implementation for an arch specific mutex to get discussion going.
After #232 there are a few outstanding issues: * Should any other (or all) cache maintenance operations be rewritten in assembly? * This is necessary if the branch instructions inserted...