10 votos

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

He visto algunos depuradores JTAG comerciales como:

  1. Analizador en chip iC6000 (compatible con el protocolo Aurora)
  2. Lauterbach - Herramientas de desarrollo de microprocesadores

Y depuradores JTAG basados en OpenOCD FT2232H:

  1. Matamoscas
  2. _NGX ARM USB JTAG_

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

3 votos

Voto por cerrar esta pregunta como off-topic porque la información requerida está en las páginas web de los fabricantes.

0 votos

Tal vez debería plantear la pregunta de otra manera

7voto

silverbolt Puntos 18

Los cables JTAG se pueden construir alrededor de todo tipo de cosas. Los cables JTAG de Xilinx, por ejemplo, tienen un chip Cypress y una FPGA. Los cables Atmel generalmente contienen un microcontrolador AVR con soporte USB. También suelen contener algunos componentes de interfaz/traducción de niveles/protección/aislamiento. Realmente depende del fabricante, todos son propietarios y mutuamente incompatibles. Por lo general, necesitas tener el cable que funcione con el software que necesites utilizar. Si todo lo que necesitas es OpenOCD, entonces un cable basado en FTDI está bien. Pero si quieres usar, por ejemplo, Xilinx ChipScope? Entonces tienes que pagar por la cosa real de Xilinx o una imitación china.

Los enlaces que tienes no son para simples cables JTAG, son mucho más especializados. Personalmente, los consideraría un equipo de prueba completo. Son básicamente analizadores de protocolo especializados. Están diseñados para interactuar con el hardware de rastreo especializado que está incorporado en el dispositivo bajo prueba. El hardware de rastreo es distinto de JTAG. Su propósito es registrar la traza completa de la ejecución del software (es decir, todas las ramas tomadas) a través de todos los núcleos de ejecución y pasarla al sistema externo de recogida de trazas (la caja en cuestión) a través de un bus de alta velocidad. La traza se analiza entonces fuera de línea. Esto NO es lo mismo que la depuración que puede hacerse a través de JTAG estableciendo breakpoints y recorriendo el código. La recogida de trazas se supone que es completamente transparente para el programa en ejecución (sin breakpoints ni código añadido). Dado que el procesador bajo prueba puede estar ejecutando varios cientos de millones de instrucciones por segundo, el almacenamiento de la traza a medida que se produce requiere mucho ancho de banda y memoria rápida. Los dispositivos enlazados soportan el protocolo Aurora (probablemente entre otros), que es un protocolo serial de alta velocidad codificado en 8b/10b, algo similar a USB 3, ATA serial, gigabit/10G ethernet serial y PCIe. Es capaz de transferir datos a 6,25 Gbps, bastante más de lo que puede soportar el enlace USB de vuelta al PC, por lo que los datos capturados deben almacenarse en la RAM de la placa para su análisis fuera de línea. Estos dispositivos contarán con FPGAs de gama alta con deserializadores internos de alta velocidad para capturar los datos junto con una cantidad considerable (varios GB) de DRAM rápida, probablemente DDR2 o incluso DDR3.

0 votos

8 GB para las trazas en el iC6000, más que el PC de tu abuela, probablemente :-) Y 6,25 Gbps de ancho de banda a través del cable Aurora.

6voto

Avner Puntos 2065

La diferencia está en el software y la funcionalidad, que afecta en gran medida 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 los detalles exactos de cómo funciona y se opera la máquina de estados JTAG. La lógica de enviar los comandos correctos para tu configuración se hace en el host de depuración en tu 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 la depuración de ARM, la programación de FPGA, o la exploración genérica de la cadena JTAG.

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

Por ejemplo: mira 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 del PC a los comandos JTAG de bajo nivel que el cable FTDI entiende. También significa que el comando de alto nivel (escribir algo de memoria) se divide en muchos más subcomandos, que el JLINK puede hacer en el cable mismo. Esto puede resultar en una mejor latencia (teniendo en cuenta las limitaciones del USB) y/o mayor velocidad.

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

Algunos programas comerciales también contienen soporte para breakpoints de código de software, donde se pueden establecer más breakpoints de código de los que permite el hardware.

El uso de la funcionalidad de trazado de algunos microcontroladores requiere un hardware muy rápido para capturar un bus paralelo de 4 bits. El hardware capaz de esta función suele contener una FPGA para hacerlo.

0 votos

Por no hablar del ancho de banda que pueden manejar; el de la gama alta de Xilinx por el que pregunta el OP (iC6000) puede hacer trazados de 6,25 Gbps con el protocolo Aurora, que (1) no está soportado por Flyswatters y aunque lo estuviera, ¿qué ancho de banda podrían manejar estos? Y la memoria interna que tienen estos: 8GB para trazas en el iC6000.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X