Arm Cortex-M processor-based devices use CoreSight technology which offers powerful debug and trace capabilities.
- Run Control of the processor allowing you to start and stop programs.
- Single Step one source or assembler line.
- Set breakpoints while the processor is running.
- Read/write memory contents and peripheral registers on-the-fly.
- Program internal and external FLASH memory.
- Serial Wire Viewer (SWV) provides program counter (PC) sampling, data trace, event trace, and instrumentation trace information.
- Instruction (ETM) Trace streamed directly to your PC enabling debugging of historical sequences, software profiling, and code coverage analysis.
The CoreSight features are available via JTAG and Serial Wire Debug interfaces using standard low-cost target connectors.
JTAG is the industry-standard interface used to download and debug programs on a target processor, as well as many other functions. It offers a convenient and easy way to connect to devices and is available on all ARM processor-based devices. The JTAG interface can be used with Cortex-M based devices to access the CoreSight debug capabilities.
Serial Wire Debug
The Serial Wire Debug (SWD) mode is an alternative to the standard JTAG interface. It uses only two pins to provide the same debug functionality as JTAG with no performance penalty, and introduces data trace capabilities with the Serial Wire Viewer (SWV).
The SWD interface pins can be overlaid with JTAG signals, allowing the standard target connectors to be used:
- TCLK - SWCLK (Serial Wire Clock)
- TMS - SWDIO (Serial Wire Data Input/Output)
- TDO - SWO (Serial Wire Output - required for SWV)
Serial Wire Viewer
Armv7-M and Armv8-M based devices are able to provide high-speed data trace information in a number of ways depending on the type of information or analysis you require.
The Serial Wire Serial (SWV) provides real-time data trace information from various sources within a Cortex-M3/M4/M7 device. It is transmitted via the SWO pin while your system processor continues to run at full speed.
Information is available from the ITM (Instrumentation Trace Macrocell) and DWT (Data Watchpoint and Trace) units, providing:
- PC (Program Counter) sampling
- Event counters that show CPU cycle statistics
- Exception and Interrupt execution with timing statistics
- Trace data - data reads and writes used for timing analysis
- ITM trace information used for simple
SWV data trace is available via the SWO pin in two output formats:
- UART style (1Mb/s) - supported by ULINK2 and ULINKplus
- Manchester encoded (100Mb/s) - supported by ULINKpro
Note: Data trace via SWV is not available using the JTAG interface. SWV is only available when using Serial Wire Debug mode.
Embedded Trace Macrocell
The Embedded Trace Macrocell (ETM) provides high bandwidth instruction trace via four dedicated trace pins accessible on the 20-pin Cortex Debug + ETM connector. This enhanced trace capability records a program's execution instruction-by-instruction which can be used for:
- Debugging historical sequences leading up to events of interest
- Software profiling and algorithm optimization
- Code coverage analysis
- ETM instruction trace is only supported by ULINKpro.
- ETM is optionally available on Armv7-M and Armv8-M based microcontrollers. It is not available on Armv6-M.
There are several target connectors which are used to connect to an Arm target system. They enable debug and trace units such as the ULINK family of debug adapters to physically connect to the target system in order to program, debug, and gather trace information. Each connector has been defined for particular use cases and has specific benefits.
10-Pin Cortex Debug Connector
The Cortex Debug Connector provides support for Serial Wire and JTAG interface modes in a very small, low cost 10-pin (0.05") connector. This connector provides access to all SWD, SWV, and JTAG signals available on a Cortex-M based device.
A 10-pin header (Samtec FTSH-105-01) is specified with these dimensions: 0.25" x 0.188" (6.35 mm x 4.78 mm).
20-Pin Cortex Debug + ETM Connector
This small 20-pin (0.05") connector provides access to SWD, SWV, JTAG, and ETM (4-bit parallel trace) signals available on an Armv7-M and Armv8-M based device.
A 20-pin header (Samtec FTSH-110-01) is specified with dimensions: 0.50" x 0.188" (12.70 mm x 4.78 mm).
20-Pin Arm Standard JTAG Connector
The Arm standard JTAG connector provides support for Serial Wire and JTAG interface modes in a 20-pin (0.1") connector. It has been used for many years in Arm processor-based systems and can be used to access all SWD, SWV, and JTAG signals available on a Cortex-M based device.
Dimensions of the Arm JTAG connector are 1.29" x 0.722" (33 mm x 18.5 mm).