What problem does it solve? Debugging embedded ARM Cortex-M firmware normally requires opening a full IDE, but terminal-based AI agents and headless workflows need a scriptable way to enumerate debug probes, flash firmware, reset chips, halt execution, and read registers or memory over SWD/JTAG. ## Core Features & Use Cases - Probe Discovery and Inspection: Enumerate connected CMSIS-DAP and J-Link probes, report their capabilities, and attach to a specific probe by UID. - Live Debug Operations: Halt, resume, single-step, set breakpoints, read core registers, decode fault registers (CFSR/HFSR/DFSR), dump stack and vector tables, and read or write RAM and peripheral memory. - Flashing and Persistent Sessions: Flash ELF/AXF/BIN images, erase flash, reset targets, and keep a persistent pyOCD session open across multi-step debug flows so breakpoints and halt state survive. - Target Name Resolution: Map project chip names (e.g., LPC55S69JBD100) to pyOCD targets via pyocd-targets.yaml, a local browser wizard, or automatic CMSIS-Pack installation. - Use Case: During board bring-up, ask the agent to enumerate probes, attach to the target, halt the core, and dump the fault registers to diagnose a HardFault without launching an IDE. ## Quick Start Ask the agent to list connected debug probes and show the status of the attached Cortex-M target using the mcu-debug-probe skill.