SWO (Serial Wire Output)
ARMのデバッグポートにある追加の1ピンで、プロセッサを全速で動かしたままトレースデータを送り出す。
SWOはSWDを補完する。SWDは停止、読み出し、書き込みを行う双方向のチャネルだが、SWOは一方向の出力専用である。主に運ぶのはITM(Instrumentation Trace Macrocell)のデータで、プログラムが1回のストアで書き込める刺激ポートが32本ある。CMSISの関数 ITM_SendChar() を使えば、UARTなしで、しかもセミホスティングと違ってコアを止めずに printf ができる。
同じ線でプログラムカウンタの定期サンプルやDWTユニットのイベントも流せるので、簡易的なプロファイラとして使える。注意点は、Cortex-M0とM0+にはITMが無いこと、ピンがJTAGのTDOと共用されがちなこと、そしてボーレートをコアクロックと正確に合わせる必要があることで、間違えると何も出てこない。