Interface Firmware for CoreSight Debug Access Port
No Matches

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:

  • On one side an Arm Cortex-based processor where an embedded application is executed,
  • and on the other side a software debug tool that runs on a host computer.

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:

CMSIS-DAP Interface

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.


  • 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.

Features and Benefits

  • Provides a standardized interface for debuggers. Interfaces to many standard debuggers is available.
  • Access to CoreSight registers of all Cortex processor architectures (Cortex-A/R/M).
  • Connects via 5-pin JTAG or 2-pin Serial Wire Debug (SWD).
  • Supports multi-core debugging.
  • Supports Serial Wire Output (SWO) of Cortex-M devices.
  • Easy to deploy to debug units based on Cortex-M microcontrollers.
  • Debug unit may be integrated on an evaluation board.
  • Using USB bulk transfers avoids driver installation on host PC.
  • Supports time-critical JTAG or SWD command execution.
  • Supports Test Domain Timer for time measurement using the debug unit.
  • Supports UART communication port, which can be routed to USB COM Port (optional) or native CMSIS-DAP commands (new in CMSIS-DAP Version 2.1.0).
  • Flexible customization is possible with vendor-specific commands.

Access to CMSIS-DAP

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)
📄 Repository description

See CMSIS Documentation for an overview of CMSIS software components, tools and specifications.

Supported Tools and Probes

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.