SWO (Serial Wire Output)
Un pin adicional del puerto de depuración de ARM que emite datos de traza mientras el procesador corre a toda velocidad.
SWO complementa a SWD: donde SWD es un canal bidireccional que detiene, lee y escribe, SWO es una salida en un solo sentido. Sobre todo transporta datos del ITM (Instrumentation Trace Macrocell), que ofrece 32 puertos de estímulo en los que el programa escribe con un único almacenamiento. La función de CMSIS ITM_SendChar() da así printf sin UART y sin parar el núcleo, a diferencia del semihosting.
El mismo hilo puede llevar muestras periódicas del contador de programa y eventos de la unidad DWT, suficiente para un perfilador rudimentario. Las pegas: Cortex-M0 y M0+ no tienen ITM, el pin suele compartirse con el TDO de JTAG y la velocidad en baudios debe coincidir exactamente con el reloj del núcleo; si no, solo se obtiene silencio.