CMSIS-DAP
More info
- Creator
- Arm
- Type
- Debug probe protocol and firmware
- License
- Apache 2.0
An open specification for how a USB debug probe takes commands from the host and turns them into SWD or JTAG traffic.
Commercial probes such as J-Link and ST-Link each speak their own protocol, so every debugging tool needs a driver per vendor. CMSIS-DAP, part of ARM's CMSIS family, instead defines a small command set — read a register, write memory, wiggle a pin — that any USB-capable microcontroller can implement.
Version 1 ran over USB HID, which needed no drivers but capped throughput at one packet per millisecond. Version 2 moved to bulk transfers and got noticeably quicker. The upshot is that a debug probe can now cost less than the chip it's debugging: OpenOCD, pyOCD and probe-rs all speak it, and the Raspberry Pi Debug Probe is essentially an RP2040 running CMSIS-DAP firmware.