Notes on embedded rust.
https://github.com/rust-embedded/embedded-hal v1.0 released January 2024, considered stable.
A flashing and debug tool. Alternative to openocd and blackmagic probe. Not actually rust specific - can flash firmware built from C for example, but written in rust and integrates with cargo.
You can also use openocd as normal with rust build files.
Supports RTT - protocol which can be used for sending debugging console text through SWD / JTAG. Needs firmware support, which sets up ring buffers which are then read by a client over the debugger connection.
cargo embed
will build and flash firmware, then start an RTT console.
cargo embed
seems to be corrupting the rtt output. Using probe-rs directly works better.
e.g. probe-rs attach –chip STM32F429ZITx target/thumbv7em-none-eabihf/debug/disco-test
https://github.com/stm32-rs - peripheral access crates. Gives access to named registers, for all STM32s.
RTT - works well with probe-rs, recommended. rprintln!
Semihosting not recommended. An ARM thing, uses special instructions. Slow. hprintln! https://developer.arm.com/documentation/dui0471/g/Bgbjjgij