Debug Connections to Arm-Based Processors and Development Boards

For embedded C/C++ software development, Arm provides both JTAG and Serial Wire Debug (SWD) connections via a range of debug probes which are tuned to the needs of the system. Whether it's high speed serial trace in a deeply embedded system, or simple microcontroller debug, Arm and our partners provide the right tools for the job.

JTAG and SWD Debug Hardware

The following debug hardware probes and integrations are available, for direct access into Arm's CoreSight debug and trace architecture:

DSTREAM

Maximum visibility into Arm processors, with 9.6 Gbps parallel trace or 20 Gbps serial trace, 4 GB trace buffer, system autodetection with DS-5 and a range of target connectors including JTAG, MICTOR and CoreSight. 

More info »
DSTREAM-ST

DSTREAM-ST

Maximum visibility into Arm processors, with 2.4 Gbps parallel trace over 4 pins, streams trace data directly to host PC, system autodetection with DS-5 and a range of target connectors including JTAG, MICTOR and CoreSight.

More info »

ULINK Family

JTAG or SWD debug connections to Arm-based microcontrollers running at clock speeds of up to 200 MHz. ULINKpro allows ETM trace capture at up to 800 Mbps and streaming trace direct to Keil MDK-Arm.

More info »

CMSIS-DAP

For simple debug over driverless USB, CMSIS-DAP provides an abstraction of the CoreSight Debug Access Port command set. The JTAG/SWD connection is incorporated into the board-level layout.

More info »

Debug over TCP/IP and Model Debug

Debugging Linux and Android Applications

For application development on Linux or Android, it is common to use GDB (the GNU Project Debugger) or ADB (Android Debug Bridge). These methods of debug do not make a connection into the lower level CoreSight architecture of a system and instead rely on a server to allow software debug. GDB is integrated into tools such as DS-5 and 3rd party Arm software development tools.  

Debugging Fast Models and Virtual Prototypes

Models can be debugged using DS-5 Development Studio or Keil MDK-Arm over the Component Architecture Debug Interface (CADI), which is a C++ API. To a software developer, this is abstracted, so connecting to a model for debug follows the same process as any other debug connection.

DS-5 Debug Probes Comparison

Debug Probe DSTREAM DSTREAM-ST ULINKpro family*
Functionality Debug, Trace Debug, Streamed Trace Debug
Target type Hardware Hardware Hardware
Cortex-A series support All All Selected devices based on
Cortex-A5
Cortex-A8
Cortex-A9
Cortex-R series support All All Selected devices based on
Cortex-R4
Cortex-R5
Cortex-M series support All All Selected devices based on any Cortex-M
Arm11 series support All All -
Arm9 series support All All -
Arm7 series support All All -
Maximum number of cores 64 128 4
Debug connectivity JTAG, SWD JTAG, SWD JTAG, SWD
JTAG frequency (MHz) 60 180 50
Memory download (KB/s) 2500 12000 1000
On-target trace Yes Yes Yes
External parallel trace Up to 16 pins Up to 4 pins -
External serial trace HSSTP, SETM - -
Trace buffer 4 GB None - streamed to host PC -
Host connectivity USB 2.0, Ethernet USB 3.0, Gigabit Ethernet USB 2.0