cortex-m
cortex-m copied to clipboard
Low level access to Cortex-M processors
Statically enforces that only comparator 0 on `armv7m` can be configured for cycle comparison by introducing a marker trait differentiating comparator 0 and the rest of them, and only implementing...
This is related to CoreSight, for when a target supports multiple trace streams. Relevant section from the the ARMv7-M standard, p. 718, attached below. 
https://github.com/rust-embedded/cortex-m/blob/92552c73d3b56dc86007450633950d16ebe0e495/src/peripheral/tpiu.rs#L105-L113 Experimentally, `tpiu.set_swo_baud_rate(16_000_000, 115_200)` works for me on an stm32, but instead of writing the expected (but invalid) 137.88, 137 is written. I theorize I just happen to be within...
https://github.com/rust-embedded/cortex-m/blob/92552c73d3b56dc86007450633950d16ebe0e495/src/peripheral/tpiu.rs#L10-L34 c.f. https://developer.arm.com/documentation/ddi0403/d/Debug-Architecture/ARMv7-M-Debug/Trace-Port-Interface-Unit/TPIU-registers-summary Both `lar` and `ffcr` introduced in c6ed9ef. `lar` is unused, but `ffcr` utilized in 720282f and refactored in fb604a7. `LAR` is likely a part of the CoreSight...
Draft improvement that closes #388. At this point we might as well implement a `TPIU::configure` akin to `{DWT,ITM}::configure`. Other register functions will have to be reviewed to see if any...
It's useful for opening various files on the host. For example: ```rust let mt file = open("file.bin\0", nr::open::RW_TRUNC_BINARY).unwrap(); file.write_all(b"Some binary content").unwrap(); ``` OpenOCD will write the content in `file.bin` on...
Throughout the crate I believe most (if not all) register-mutating functions are unchecked, meaning that the crate user should check for support before enabling and configurating a feature. I consider...
From ARM DDI 0403.d, p. C1-731: > To find the maximum size of the address comparison mask for comparator n, software must write 0b11111 to the DWT_MASKn.MASK field, and then...
Part of https://github.com/rust-embedded/wg/issues/383 Might also involve https://github.com/rust-lang/rust/issues/27731 so we can get rid of (some) of the inline asm / pre-compiled objects. * [X] Consider getting rid of aligned dependency subtree...
Turns out rustc has an unstable symbol order between Linux and macOS, but only if `-Clinker-plugin-lto` is not used, so let's only check those archives for binary changes for now....