SWO (Serial Wire Output)
Jeden dodatkowy pin portu debugowania ARM, który wysyła dane śledzenia, gdy procesor pracuje z pełną prędkością.
SWO uzupełnia SWD: SWD to kanał dwukierunkowy, który zatrzymuje, odczytuje i zapisuje, a SWO to wyjście jednokierunkowe. Przenosi głównie dane z ITM (Instrumentation Trace Macrocell), który oferuje 32 porty stymulacji, do których program pisze jedną instrukcją zapisu. Funkcja CMSIS ITM_SendChar() daje więc printf bez UART-a i bez zatrzymywania rdzenia, inaczej niż semihosting.
Ten sam przewód może nieść okresowe próbki licznika programu i zdarzenia z jednostki DWT, co wystarcza na prymitywny profiler. Haczyki: Cortex-M0 i M0+ nie mają ITM, pin bywa współdzielony z TDO z JTAG, a szybkość transmisji musi dokładnie pasować do zegara rdzenia — pomyl się, a usłyszysz ciszę.