Boot ROM and earliest init require extreme minimalism and low-level control
Some bring-up paths demand assembly and direct register control
no_std/alloc-less Rust is possible but increases complexity significantly
Toolchain and verification flows for targets still maturing
Existing certified C codebases remain widely relied upon in firmware