¿Cuál es la diferencia entre un depurador JTAG comercial y un depurador de código abierto FT2232H OpenOCD?


10

He visto algunos depuradores JTAG comerciales como:

  1. Analizador en chip iC6000 (con soporte de protocolo Aurora)
  2. Lauterbach - Herramientas de desarrollo de microprocesador

Y depuradores JTAG basados ​​en OpenOCD FT2232H:

  1. Matamoscas
  2. NGX ARM USB JTAG

¿Por qué estos depuradores comerciales son grandes en comparación con los depuradores JTAG FT2232H que tienen solo un pequeño tamaño de tarjeta de crédito PCB? ¿Qué hardware adicional está presente dentro de los depuradores comerciales y en qué parte de la depuración pueden ayudar?


3
Estoy votando para cerrar esta pregunta como fuera de tema porque la información requerida está en los sitios web de los fabricantes.
Leon Heller

Tal vez debería hacer la pregunta de una manera diferente
robomon

Respuestas:


7

Los cables JTAG se pueden construir alrededor de todo tipo de cosas. Los cables Xilinx JTAG, por ejemplo, tienen un chip Cypress y un FPGA. Los cables Atmel generalmente contienen un microcontrolador AVR con soporte USB. Por lo general, también contendrán algunos componentes de interfaz / nivel de traducción / protección / aislamiento. Realmente depende del fabricante, todos son propietarios y son incompatibles entre sí. En general, debe tener el cable que funcione con cualquier software que necesite usar. Si todo lo que necesita es OpenOCD, entonces un cable basado en FTDI está bien. Pero si quiere usar, diga Xilinx ChipScope? Entonces debe pagar ya sea por lo real de Xilinx o por una imitación china.

Los enlaces que tiene no son para cables JTAG simples, son mucho más especializados. Yo personalmente consideraría que estos son un equipo de prueba completo. Son básicamente analizadores de protocolos especializados. Están diseñados para interactuar con hardware de rastreo especializado que se incorpora al dispositivo bajo prueba. El hardware de rastreo es distinto de JTAG. Su propósito es registrar la traza de ejecución completa del software en ejecución (es decir, todas las ramas tomadas) en todos los núcleos de ejecución y pasarla al sistema externo de recolección de trazas (el cuadro en cuestión) a través de un bus de alta velocidad. La traza se analiza fuera de línea. Esto NO es lo mismo que la depuración que se puede hacer a través de JTAG al establecer puntos de interrupción y recorrer el código. Se supone que la recopilación de rastreo es completamente transparente para el programa en ejecución (sin puntos de interrupción o código agregado). Dado que el procesador bajo prueba puede ejecutar varios cientos de millones de instrucciones por segundo, almacenar la traza a medida que se produce requiere mucho ancho de banda y memoria rápida. Los dispositivos vinculados son compatibles con el protocolo Aurora (probablemente entre otros), que es un protocolo serie de alta velocidad codificado 8b / 10b, algo similar a USB 3, serie ATA, serie gigabit / 10G Ethernet y PCIe. Es capaz de transferir datos a 6.25 Gbps, significativamente más de lo que puede manejar el enlace USB de regreso a la PC, por lo que los datos capturados deben almacenarse en la RAM incorporada para el análisis fuera de línea. Estos dispositivos contendrán FPGA de gama alta con deserializadores internos de alta velocidad para capturar los datos junto con bastante (varios GB) de DRAM rápida,


8GB para trazas en el iC6000, más que la PC de su abuela prolly :-) Y 6.25 Gbps de ancho de banda a través del cable Aurora.
Fizz

6

La diferencia está en el software y la funcionalidad, que afecta enormemente al hardware.

Los cables FTDI JTAG utilizan un conjunto de comandos para producir señales JTAG. Estos son comandos de muy bajo nivel, que a menudo entran en detalles exactos sobre cómo funciona y funciona la máquina de estado JTAG. La lógica de enviar los comandos correctos para su configuración se realiza en el host de depuración en su PC.

Esto es funcional, hardware barato, software libre (GNU GCC + GDB + OpenOCD), etc. Es lo suficientemente flexible (debido al conjunto de comandos de bajo nivel) que hay puertos para depuración ARM, programación FPGA o escaneo genérico de cadenas JTAG .

Los cables comerciales son mucho más específicos de una plataforma y a menudo contienen lógica dentro del cable. Esto permite que el programa de PC hable con el dispositivo de una manera más abstracta que puede ser más rápida.

Por ejemplo: mire el protocolo USB JLINK . Contiene comandos como EMU_CMD_WRITE_MEM_ARM79. Los cables FTDI también pueden ejecutar este comando, pero se traduce en el lado de la PC a los comandos JTAG de bajo nivel que entiende el cable FTDI. También significa que el comando de alto nivel (escribir algo de memoria) se divide en muchos más subcomandos, que JLINK puede hacer en el cable. Esto puede resultar en una mejor latencia (teniendo en cuenta las limitaciones de USB) y / o mayor velocidad.

También depende de los proveedores comerciales de IDE qué cable admiten, y es más probable que se admita un cable comercial. Por otro lado, es más probable que los IDE gratuitos admitan los cables de depuración FTDI baratos.

Algunos software comerciales también contienen soporte para puntos de interrupción de código de software, donde puede establecer más puntos de interrupción de código de los que permite el hardware.

El uso de la funcionalidad de rastreo de algunos microcontroladores requiere un hardware muy rápido para capturar un bus paralelo de 4 bits. El hardware capaz de esta característica a menudo contiene un FPGA para hacerlo.


Por no hablar del ancho de banda que estos pueden manejar; el del Xilinx de gama alta sobre el que pregunta el OP (iC6000) puede hacer trazas de 6.25 Gbps con el protocolo Aurora, que (1) no es compatible con Flyswatters e incluso si lo fuera, ¿qué ancho de banda manejarían? Y la memoria interna tiene: 8GB para trazas en el iC6000.
Fizz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.