CMSIS-DAP is an ARM-authored specification for a standardized debug interface that can be used under multiple operating systems.... for ARM processors only.

CMSIS-DAP was released separately under two not entirely consistent licenses. The first was a highly restrictive license under the umbrella of the CMSIS specification. The second release was via ARMmbed. It consisted of a partial firmware implementation nominally under an Apache license, but yet still seems to be subject to the license of the former.

In any case, the firmware is incomplete. It relies upon a commercial USB stack only available through Keil, another ARM subsidiary.

To show the viability of a reasonably low-cost debugger within the constraints of the license but without the cost of a commercial USB stack, I wrote a sample proof-of-concept CMSIS-DAP implementation over a weekend in February 2014. It was based on the bones of the partial ARMmbed Apache license code, but leveraged the MCD-ST Liberty SW License V2 USB library for the STM32 family from STMicro. It was developed on a STM32F072B-DISCO evaluation board.

The code was originally hosted on Google Code, but when Google plugged the plug on that endeavor, the code was moved here.