SWO (Serial Wire Output)
Один дополнительный вывод порта отладки ARM, по которому выдаются данные трассировки, пока процессор работает на полной скорости.
SWO дополняет SWD: если SWD — двусторонний канал, позволяющий останавливать, читать и писать, то SWO — односторонний выход. Чаще всего по нему идут данные ITM (Instrumentation Trace Macrocell), у которого 32 стимул-порта, доступных программе одной командой записи. Функция CMSIS ITM_SendChar() даёт printf без UART и без остановки ядра, в отличие от семихостинга.
По той же линии могут идти периодические отсчёты счётчика команд и события блока DWT — этого хватает на грубый профилировщик. Подводные камни: в Cortex-M0 и M0+ нет ITM, вывод часто совмещён с TDO от JTAG, а скорость передачи должна точно соответствовать тактовой частоте ядра — ошибётесь, и получите тишину.