Quelle est la différence entre un débogueur JTAG commercial et un débogueur OpenOCD FT2232H open source?


10

J'ai vu quelques débogueurs JTAG commerciaux tels que:

  1. Analyseur sur puce iC6000 (avec prise en charge du protocole Aurora)
  2. Lauterbach - Outils de développement de microprocesseurs

Et débogueurs JTAG basés sur OpenOCD FT2232H:

  1. Flyswatter
  2. NGX ARM USB JTAG

Pourquoi ces débogueurs commerciaux sont-ils de grandes boîtes par rapport aux débogueurs FT2232H JTAG qui ont juste un petit PCB de taille de carte de crédit? Quel matériel supplémentaire est présent à l'intérieur des débogueurs commerciaux et dans quelle partie du débogage cela peut-il aider?


3
Je vote pour fermer cette question comme hors sujet, car les informations requises se trouvent sur les sites Web des fabricants.
Leon Heller

Je devrais peut-être poser la question d'une manière différente
robomon

Réponses:


7

Les câbles JTAG peuvent être construits autour de toutes sortes de choses. Les câbles Xilinx JTAG, par exemple, ont une puce Cypress et un FPGA. Les câbles Atmel contiennent généralement un microcontrôleur AVR avec prise en charge USB. Ils contiennent également généralement des composants d'interface / niveau de traduction / protection / isolation. Cela dépend vraiment du fabricant, ils sont tous propriétaires et mutuellement incompatibles. En règle générale, vous devez disposer du câble compatible avec tous les logiciels dont vous avez besoin. Si tout ce dont vous avez besoin est OpenOCD, alors un câble basé sur FTDI est parfait. Mais si vous voulez utiliser, dites Xilinx ChipScope? Ensuite, vous devez payer pour la vraie chose de Xilinx ou une imitation chinoise.

Les liens que vous avez ne sont pas destinés à de simples câbles JTAG, ils sont bien plus spécialisés. Je considérerais personnellement ces derniers comme un équipement de test complet. Ce sont essentiellement des analyseurs de protocoles spécialisés. Ils sont conçus pour s'interfacer avec du matériel de traçage spécialisé qui est incorporé dans l'appareil testé. Le matériel de trace est différent de JTAG. Son but est d'enregistrer la trace d'exécution complète du logiciel en cours d'exécution (c'est-à-dire toutes les branches prises) sur tous les cœurs d'exécution et de la transmettre au système de collecte de traces externe (la boîte en question) sur un bus à grande vitesse. La trace est ensuite analysée hors ligne. Ce n'est PAS la même chose que le débogage qui peut être effectué sur JTAG en définissant des points d'arrêt et en parcourant le code. La collection de traces est censée être complètement transparente pour le programme en cours d'exécution (pas de points d'arrêt ou de code ajouté). Étant donné que le processeur testé peut exécuter plusieurs centaines de millions d'instructions par seconde, le stockage de la trace telle qu'elle est produite nécessite beaucoup de bande passante et une mémoire rapide. Les périphériques liés prennent en charge le protocole Aurora (probablement entre autres), qui est un protocole série haute vitesse codé 8b / 10b, quelque peu similaire à USB 3, ATA série, Ethernet Gigabit / 10G série et PCIe. Il est capable de transférer des données à 6,25 Gbit / s, bien plus que ce que la liaison USB vers le PC peut gérer, de sorte que les données capturées doivent être stockées dans la RAM intégrée pour une analyse hors ligne. Ces appareils contiendront des FPGA plutôt haut de gamme avec des désérialiseurs internes à haute vitesse pour capturer les données avec pas mal (plusieurs Go) de DRAM rapide,


8 Go pour les traces sur l'iC6000, plus que le PC de votre gramma :-) Et une bande passante de 6,25 Gbps via le câble Aurora.
Fizz

6

La différence réside dans les logiciels et les fonctionnalités, ce qui affecte considérablement le matériel.

Les câbles FTDI JTAG utilisent un jeu de commandes pour produire des signaux JTAG. Ce sont des commandes de très bas niveau, qui entrent souvent dans les détails exacts du fonctionnement et du fonctionnement de la statemachine JTAG. La logique d'envoi des commandes correctes pour votre configuration se fait sur l'hôte de débogage de votre PC.

Il s'agit d'un matériel fonctionnel et bon marché, d'un logiciel gratuit (GNU GCC + GDB + OpenOCD), etc. .

Les câbles commerciaux sont beaucoup plus spécifiques à une plate-forme et contiennent souvent une logique à l'intérieur du câble. Cela permet au programme PC de parler à l'appareil d'une manière plus abstraite, ce qui peut être plus rapide.

Par exemple: regardez le protocole USB JLINK . Il contient des commandes comme EMU_CMD_WRITE_MEM_ARM79. Les câbles FTDI peuvent également exécuter cette commande, mais elle est traduite du côté PC en commandes JTAG de bas niveau que le câble FTDI comprend. Cela signifie également que la commande de haut niveau (écrire de la mémoire) est décomposée en de nombreuses autres sous-commandes, ce que JLINK peut faire sur le câble lui-même. Cela peut entraîner une meilleure latence (en tenant compte des limites de l'USB) et / ou une vitesse plus élevée.

Il appartient également aux fournisseurs commerciaux IDE quel câble ils prennent en charge, et il est plus probable qu'un câble commercial soit pris en charge. D'un autre côté, il est plus probable que les IDE gratuits prendront en charge les câbles de débogage FTDI bon marché.

Certains logiciels commerciaux contiennent également la prise en charge des points d'arrêt de code logiciel, où vous pouvez définir plus de points d'arrêt de code que le matériel ne le permet.

L'utilisation de la fonctionnalité de trace de certains microcontrôleurs nécessite un matériel très rapide pour capturer un bus parallèle 4 bits. Le matériel capable de cette fonctionnalité contient souvent un FPGA pour ce faire.


Sans parler de la bande passante que ceux-ci peuvent gérer; celui pour le Xilinx haut de gamme que l'OP demande (iC6000) peut faire des traces de 6,25 Gbps avec le protocole Aurora, qui (1) n'est pas pris en charge par Flyswatters et même si c'était le cas, quelle bande passante géreraient-ils? Et la mémoire interne: 8 Go pour les traces sur l'iC6000.
Fizz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.