Depuración de JTAG vs SWD

41

Después de leer este artículo , me pregunto cuáles son los beneficios de la depuración SWD sobre la depuración JTAG.

Entiendo que SWD usa menos cables / pines, ocupa menos espacio, etc. Pero, ¿cómo se desempeña en términos de rendimiento, características y costo de los dispositivos programadores / depuradores de hardware? ¿Puede el código seguir siendo interrumpido / pausado y atravesado en IDE como Eclipse?

¿Se puede programar un chip ARM usando la interfaz SWD, como creo que se puede hacer en JTAG?

josef.van.niekerk
fuente
Los chips basados ​​en ARM con los núcleos más recientes (Cortex, por ejemplo) se pueden programar y depurar a través de SWD.
B Pete
@BPete: descubrí que con SWD es difícil depurar chips basados ​​en ST que usan el modo de suspensión; nuestros tableros actuales no tienen los pines disponibles para JTAG, pero me preguntaba si JTAG podría ser mejor en ese sentido.
supercat
2
Este (SWD) se parece un poco a la interfaz Spy Bi-Wire que TI colocó en un subconjunto de sus procesadores MSP430. Es un JTAG de 2 hilos (más potencia y tierra) con SBWTCLK y SBWTDIO multiplexados en dos pines que no son GPIO (TEST y RST / NMI) en un dispositivo de ejemplo. Compatible con el devkit EZ430. ¡Y (SBW) admite pasos y puntos de interrupción! No sé si los propios ARM de TI tienen la misma interfaz, pero sería interesante si hubiera suficientes puntos en común entre ellos para compartir herramientas de programación / depuración.
Brian Drummond el
El enlace de tu artículo está muerto, pero ¿tal vez este fue el artículo? arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

Respuestas:

12

SWD debería poder programar el conjunto de chips ARM y además puede depurar y agregar puntos de interrupción. Lo otro bueno de SWD es que puede usar el visor de cable serial para sus declaraciones printf para la depuración. Solo lo he usado con el compilador Keil.

usuario468662
fuente
Mire este enlace en el visor de cable serial. keil.com/download/files/swv_on_cortex-m3.pdf
user468662
37

Eléctricamente

  • Pin Count
    • JTAG requiere 4 líneas de señal
    • SWD solo requiere 2 líneas de señal
    • La interfaz JTAG de 2 hilos especificada en IEEE 1149.7 elimina el número de pines, pero no parece estar ampliamente disponible en muchos circuitos integrados. También reduce el ancho de banda.
  • Topología
    • JTAG utiliza una configuración en cadena para sus líneas de datos entre chips. La velocidad de JTAG está limitada por el chip más lento de la cadena. Sin embargo, sus líneas de restablecimiento y borrado están ocupadas (no encadenadas), lo que permite la interoperabilidad a través de SWDJ-DP (consulte la discusión a continuación).
    • JTAG de 2 hilos permite una topología en estrella, pero no se usa con frecuencia.
    • SWD permite topologías en estrella

Funcionalmente

  • SWD es un protocolo específico de ARM diseñado específicamente para micro depuración.
  • JTAG (Joint Test Action Group) fue diseñado principalmente para pruebas de chip y placa. Se utiliza para escaneos de límites , verificando fallas en chips / tableros en producción. La depuración y flasheo de micros fue una evolución en su aplicación a lo largo del tiempo.
  • JTAG está en uso para múltiples arquitecturas de microcontroladores / procesadores aparte de ARM.

Discusión General

JTAG es más ampliamente compatible, a partir de 2017, por micros, programadores y líneas de producción que no son ARM. Los programadores para JTAG se pueden obtener a bajo precio en forma de brotes FT232H [*] y otros dispositivos de programación similares. Sin embargo, SWD tiene una clara ventaja en velocidad y otras áreas en la depuración de chips ARM.

Debido a la división en la naturaleza intencional de JTAG en las pruebas y SWD en la depuración, ARM proporciona SWJ-DP (puerto serie / puerto de depuración jtag) a través de su tecnología CoreSight que asigna pines SWD en el reloj de JTAG y reinicia las líneas. Por lo tanto, SWJ-DP permite usar ambos protocolos en la misma conexión física, aunque no necesariamente al mismo tiempo o con los mismos programadores que JTAG y SWD tendrían que multiplexarse ​​a tiempo.

Referencias utiles

retrodispersado
fuente
7

Puede que sea demasiado tarde para OP, pero tal vez sea útil para otras personas con la misma pregunta. Entonces, aquí vamos (experiencia personal): es posible programar y depurar (recuperar mapas de memoria / registro, romper, ejecutar desde un punto específico, etc.) con SWD. Usando Eclipse aquí con GDB a través de J-Link EDU, que cuesta ~ 50 euros. Hay algunos errores (restablecer el objetivo a través del depurador, a veces no se conecta o busca mapas), pero es relativamente barato y utilizable, una vez que se familiariza con sus peculiaridades

stiebrs
fuente
7

Antigua pregunta, pero ninguna de las respuestas aborda la comparación de rendimiento. Aunque el conjunto de características entre SWD y JTAG (cuando se utiliza un CoreSight DAP) es lo suficientemente similar, las secuencias SWD son aproximadamente un 10% más cortas que las secuencias JTAG equivalentes.

No hay pérdida en el ancho de banda de datos en la mayoría de los casos (particularmente la transmisión de lecturas o escrituras donde el ancho de banda es más importante).

Sean Houlihane
fuente