Serial Wire Debug (SWD) es un protocolo de depuración de hardware desarrollado por ARM Holdings, diseñado para proporcionar acceso de bajo pin-count a los núcleos de procesadores ARM Cortex-M y otros SoCs. Utiliza una interfaz de dos pines: SWDIO (Serial Wire Debug Input/Output) para datos bidireccionales y SWCLK (Serial Wire Clock) para la sincronización. SWD es una alternativa a la interfaz JTAG (Joint Test Action Group), ofreciendo una reducción significativa en el número de pines requeridos (2 frente a 4-5 de JTAG) mientras mantiene una funcionalidad de depuración robusta, incluyendo la lectura/escritura de registros, memoria, control de ejecución (breakpoints, single-stepping) y acceso a periféricos.
SWD es omnipresente en el desarrollo de sistemas embebidos modernos, especialmente en dispositivos basados en microcontroladores ARM Cortex-M. Herramientas de depuración como el J-Link de SEGGER, el ST-Link de STMicroelectronics y el DAPLink de ARM son programadores/depuradores que implementan SWD para interactuar con placas de desarrollo y productos finales. Es la interfaz estándar para depurar microcontroladores de fabricantes como STMicroelectronics (STM32), NXP (Kinetis), Espressif (ESP32-C3/H2/P4, ESP32-S3), y Nordic Semiconductor (nRF52). También es común en el desarrollo de firmware para IoT, wearables y sistemas de control industrial donde el espacio y el coste de los pines son críticos.
Para un Arquitecto de Sistemas, SWD es crucial por su impacto en el diseño de hardware y la estrategia de desarrollo. Su bajo número de pines reduce el coste de la placa de circuito impreso (PCB) y simplifica el enrutamiento, permitiendo diseños más compactos y económicos. La elección de SWD sobre JTAG puede influir en la selección de microcontroladores y en la complejidad del proceso de fabricación y testeo. Desde una perspectiva de seguridad, el acceso SWD debe ser cuidadosamente gestionado en productos finales, ya que puede ser un vector para la extracción de firmware o la inyección de código malicioso si no se deshabilita o protege adecuadamente. Comprender SWD permite al arquitecto tomar decisiones informadas sobre la capacidad de depuración en campo, la actualización de firmware y las implicaciones de seguridad en el ciclo de vida del producto.