JTAG vs SWD debugging

29

Después de hojear a través de este artículo , me pregunto cuáles son los beneficios de la depuración de SWD sobre la depuración de 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? ¿Es posible que el código siga siendo puntual / pausado y se haya introducido en IDE como Eclipse?

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

    

4 respuestas

11

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

    
respondido por el user468662
25

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 cables 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 de cadena de margarita 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 en bus (no encadenadas) lo que permite la interoperabilidad a través de SWDJ-DP (consulte la discusión a continuación).
    • JTAG de 2 cables 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 exploraciones de límites , verificando fallas en fichas / 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 además de ARM.

Discusión general

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

Debido a la división en la naturaleza específica de JTAG en las pruebas y SWD en la depuración, ARM proporciona SWJ-DP (puerto de depuración de cable serie / jtag) a través de su tecnología CoreSight que mapea los pines SWD en las líneas de reinicio y reloj de JTAG. 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, ya que JTAG y SWD tendrían que ser multiplexados en el tiempo.

Referencias útiles

respondido por el backscattered
6

Puede que sea un poco tarde para OP, pero quizás sea útil para otras personas con la misma pregunta. Entonces, aquí vamos (experiencia personal): Es posible programar y depurar (capturar mapas de memoria / registro, romper, ejecutar desde un punto específico, etc.) con SWD. Utilizando Eclipse aquí con GDB a través de J-Link EDU, que cuesta unos 50 euros. Hay algunos errores (restablecer el destino a través del depurador, a veces no se conecta ni recupera mapas), pero es relativamente barato y utilizable, una vez que te familiarizas con sus peculiaridades

    
respondido por el stiebrs
6

Pregunta anterior, pero ninguna de las respuestas aborda la comparación de rendimiento. Aunque el conjunto de características entre SWD y JTAG (cuando se usa un CoreSight DAP) es lo mismo, 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 los datos en la mayoría de los casos (en particular, las lecturas o grabaciones de transmisión de datos en donde el ancho de banda es más importante).

    
respondido por el Sean Houlihane

Lea otras preguntas en las etiquetas