трассировка SWO для ARM Cortex M3 и M4

Очень важный функционал для отлаживания кода под ARM Cortex M3 и Cortex M4 трассировка SWO . Она позволяет выводить диагностические сообщения по ходу выполнения кода программы. Cамое главное SWO работает на относительно большой скорости и не нагружает контроллер своим выполнением , то есть не вызывает прерывание у контроллера , не вызываем выполнение какого-то сервисного кода и т.д.

Вот выжимка на английском из NXP документации на среду разработки MCUXpresso:

1.2 Serial Wire Output (SWO)
ARM’s Coresight debug architecture allows data to be sampled and streamed from the MCU to the host completely non intrusively. This scheme allows events such as periodic PC sampling, interrupts, etc. to be captured and transmitted by the debug probe with no effect on MCU performance and without the need for any code instrumentation or changes. The Serial Wire Output (SWO) tools provide access to the memory of a running target, and facilitate Trace without needing to interrupt the target. Support for SWO is generally provided by all Cortex-M3 and M4 based MCUs. It requires just one extra pin in addition to the standard Serial Wire Debug (SWD) connection (but cannot be used if a JTAG debug connection is being used). Cortex-M0 and Cortex-M0+ based MCUs do not have SWO capabilities .

Без трассировки (типа SWO) практически невозможно отлаживать стек USB или стек Ethernet .