"how does that work, and could..." <- The startup process in std applications is nicely explained in https://os.phil-opp.com/freestanding-rust-binary/. Not sure if everything in that article is still up to date, but I don't think the general approach has changed in the meantime. As I understand it, the cortex-m-rt startup process is a little bit different: It starts from the `Reset` symbol in `asm.S`, executes some assemly code to do memory initialization etc., and then jumps directly to the symbol `main`, which is provided by the `#[entry]` macro. Otherwise, I don't think the macro doesn't do anything strictly necessary. This seems to work: ``` #![no_std] #![no_main] use panic_probe as _; #[no_mangle] fn main() -> ! { // [...] } ```