CMSIS-DAP   Version 2.1.2
Interface Firmware for CoreSight Debug Access Port
 
All Functions Modules Pages
Loading...
Searching...
No Matches
Overview

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.

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.

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)
📄 README.md 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.

License

CMSIS-DAP is provided free of charge by Arm under the Apache 2.0 License.