What problem does it solve? Bare-metal Rust firmware fails in ways host testing cannot catch: wrong linker layouts, missing panic handlers, atomics unsupported on the target core, DMA buffer lifetime bugs, and silent memory overflows. This Skill provides concrete triage tables, verification commands, and completion checklists so embedded Rust code stays bootable, bounded, and observable. ## Core Features & Use Cases - Failure triage table: Maps concrete compiler and linker errors (E0599 missing fetch_add, duplicate panic implementations, defmt link errors, region overflow) to their causes and fixes. - Target and concurrency rules: Covers target selection via rustc --print cfg, portable-atomic for cores without CAS, critical-section ownership, and bounded interrupt-shared state under edition 2024. - Verification workflow: Provides host-test commands, thumbv6m no-CAS checks, ELF inspection with cargo-binutils, and probe-rs flashing with explicit chip selection. - Use Case: When porting an Embassy driver to a thumbv6m-none-eabi chip, use this Skill to add the portable-atomic check, select one critical-section backend in the final binary, and verify the release ELF fits the declared memory regions. ## Quick Start Ask the agent to review your no_std firmware crate for boot, atomics, panic policy, and memory-layout issues using the embedded Rust guidelines.