Many Arm Cortex processors implement CoreSight Debug Access Port (DAP) that equips them with powerful on-chip debug and trace capabilities. CMSIS-DAP standardizes and simplifies access to this functionalilty for embedded software developers.
CMSIS-DAP is a protocol specification and a firmware implementation that enables standardized communication between two sides:
CMSIS-DAP support can be implemented in a standalone debug unit, or also as a component integrated on a development board. The figure below illustrates the concept:
Connection with the target processor is possible over the physical interfaces supported by the CoreSight DAP: a 5-pin JTAG or a 2-pin Serial Wired Debug (SWD) interface. Additionally it can expose access to a UART for serial-to-USB communication. CMSIS-DAP supports target devices that contain one or more Arm Cortex cores.
For communication with the debugging program the USB connection is used. A broad set of CMSIS-DAP Commands enables uniform support for CMSIS-DAP independendent on the actual probe.
The CMSIS-DAP Firmware provides a template implementation of the CMSIS-DAP concept as well as several example projects for popular debug units.
Debug probes can be validated for compliance to CMSIS-DAP using the scripts explained in Validate the debug unit operation.
Note
- CMSIS-DAP v1.x is deprecated and is not recommended for new designs.
- Use CMSIS-DAP v2.x instead that provides high-speed SWO trace streaming and does not require driver installation in modern operating systems (Mac OS, Linux, Windows). Refer to Host OS Drivers for more information.
CMSIS-DAP is actively maintained in CMSIS-DAP GitHub repository that contains the full source of CMSIS-DAP firmware as well as this documentation. The table below explains the repository structure.
Directory | Description |
---|---|
📂 Documentation | Folder with sources of this CMSIS-DAP documenation |
📂 Firmware | Folder with CMSIS-DAP Firmware |
📄 LICENSE | License Agreement (Apache 2.0) |
📄 README.md | Repository description |
See CMSIS Documentation for an overview of CMSIS software components, tools and specifications.
CMSIS-DAP has a well-established support in popular embedded software development tools. Below is a non-exhaustive list with key examples:
Software Development Tools and Frameworks:
Also many development tools from chip vendors rely on CMSIS-DAP protocol for communication with devices.
Debug adapters:
CMSIS-DAP Firmware provides the source code, examples and guidelines for enabling CMSIS-DAP on custom debug units.
CMSIS-DAP is provided free of charge by Arm under the Apache 2.0 License.