The pin and the protocol

SWD (Serial Wire Debug) is a minimal pin debug and trace port. At a very minimal configuration, SWD consists of a debug port matching JTAG’s functionality but with just 2 wires.

These two wires are:

  1. SWCLK
  2. SWDIO

SWCLK is the clock for the synchronous bi-directional half-duplex communication channel SWDIO that runs between the host and the target. The host can access the DAP (Debug Access Port) as per ADI (ARM Debug Interface specification) through SWDIO pin.

ARM cores have advanced tracing functionality enabled by ITM, ETM, DWT, etc. These are asynchronous trace messages needed to be sent from the processor to the host.

In addition to SWCLK and SWDIO, another wire can optionally be added to obtain trace functionality. This wire is called SWO (Serial Wire Output).

SWO is a unidirectional asynchronous pin with trace data flowing from the target to the host. SWV data can be sent over SWO pin using either UART or Manchester encoded.


When the trace data is sent through SWO pin, it is called Serial Wire View.

Trace data can also be sent through parallel data bus called TPIU.


SWO is a pin/wire in SWD port whereas SWV is a tracing protocol and technology that is sent through the SWO pin.


  1. CoreSight Technology