# SWD Serial Wire Debug **Table of Contents** # About - 2 wire protocol to access the ARM debug interface. Alternate to JTAG. - Defines in ARM Debug Interface Specification V5 - 2 Lines + 1 (Optional): - SWDIO: Bidirectional Data Line - SWCLK: Clock driven by the host - SWDO: Trace Pin for Communication - Useful to program MCUs internal Flash, Access Memory Regions, Add Breakpoints, stop/run CPU # Important Information ## STM32 Family - They have a FIFO inside their ITM unit which serializes the data and sends it out via the SWO Pin. - Make this change in the `` to enable the `printf` via SWO pin.| Change: https://github.com/niekiran/Embedded-C/blob/master/All_source_codes/target/itm_send_data.c | Guide: https://www.udemy.com/course/microcontroller-embedded-c-programming/learn/lecture/16546068#overview # References https://developer.arm.com/documentation/101636/0100/Debug-and-Trace/JTAG-SWD-Interface https://community.silabs.com/s/article/serial-wire-debug-swd-x?language=en_US https://wiki.segger.com/Target_Interface_SWD https://infocenter.nordicsemi.com/index.jsp?topic=/nwp_034/WP/nwp_034/nwp_034_swd_if.html