Яка різниця між комерційним налагоджувачем JTAG і відкритим вихідним кодом FT2232H OpenOCD налагоджувач?


10

Я бачив кілька комерційних налагоджувачів JTAG, таких як:

  1. Набір мікросхеми iC6000 (з підтримкою протоколу Aurora)
  2. Lauterbach - Інструменти для розробки мікропроцесорів

І налагоджувачі JTAG на базі OpenOCD FT2232H:

  1. Мухомор
  2. NGX ARM USB JTAG

Чому ці комерційні налагоджувачі великі коробки порівняно з налагоджувачами JTAG FT2232H, у яких є лише невелика плата розміру кредитної картки? Яке додаткове обладнання присутнє всередині комерційних налагоджувачів і в якій частині налагодження вони можуть допомогти?


3
Я голосую, щоб закрити це питання поза темою, оскільки необхідна інформація знаходиться на веб-сайтах виробників.
Леон Хеллер

Можливо, я повинен поставити питання по-іншому
robomon

Відповіді:


7

Кабелі JTAG можна побудувати навколо всіляких речей. Наприклад, кабелі Xilinx JTAG мають чіп Cypress та FPGA. Кабелі Atmel зазвичай містять мікроконтролер AVR з підтримкою USB. Вони також зазвичай містять деякі компоненти інтерфейсу / рівня перекладу / захисту / ізоляції. Це дійсно залежить від виробника, всі вони є власником і взаємно несумісними. Як правило, вам потрібно мати кабель, який працює з будь-яким програмним забезпеченням, яке вам потрібно використовувати. Якщо все, що вам потрібно, це OpenOCD, то кабель на базі FTDI - це добре. Але якщо ви хочете використовувати, скажіть, Xilinx ChipScope? Тоді вам потрібно заплатити або за справжню річ від Xilinx, або за китайський підказ.

У вас є посилання не для простих кабелів JTAG, вони набагато більш спеціалізовані. Я б особисто вважав це повноцінним тестовим обладнанням. Вони в основному є спеціалізованими аналізаторами протоколів. Вони розроблені для взаємодії зі спеціалізованим обладнанням для відстеження, яке вбудоване в тестуваний пристрій. Апаратне забезпечення Trace відрізняється від JTAG. Його мета полягає в тому, щоб записати повний слід виконання запущеного програмного забезпечення (тобто всіх гілок) у всіх ядрах виконання та передати його до зовнішньої системи збору слідів (розглянутий вікно) через високошвидкісну шину. Потім слід аналізувати офлайн. Це НЕ те саме, що налагодження, яке можна здійснити через JTAG, встановивши точки прориву та переглянувши код. Збір слідів повинен бути повністю прозорим для запущеної програми (без точок перерви чи доданого коду). Оскільки процесор, що випробовується, може виконувати кілька сотень мільйонів інструкцій в секунду, для зберігання сліду при його виробництві потрібна велика пропускна здатність і швидка пам'ять. З'єднані пристрої підтримують протокол Aurora (напевно, серед інших), який є кодованим 8b / 10b високошвидкісним послідовним протоколом, дещо схожим на USB 3, послідовну ATA, послідовний гігабітний / 10G Ethernet та PCIe. Він здатний передавати дані з частотою 6,25 Гбіт / с, що значно більше, ніж обробляє посилання USB назад до ПК, тому захоплені дані повинні зберігатися в бортовій оперативній пам’яті для офлайн-аналізу. Ці пристрої будуть містити досить високі FPGA з внутрішніми швидкісними десеріалізаторами для збору даних разом із досить невеликим (декількома ГБ) швидким DRAM,


8 ГБ для слідів на iC6000, що більше, ніж на ПК у вашій граматиці :-) І пропускна здатність 6,25 Гбіт / с через кабель Aurora.
Фіз

6

Різниця полягає в програмному забезпеченні та функціональності, що сильно впливає на обладнання.

Кабелі FTDI JTAG використовують командний набір для створення сигналів JTAG. Це дуже низькі команди, які часто вказують на точні відомості про те, як працює державна машина JTAG та керується нею. Логіка надсилання правильних команд для вашої установки виконується на хості налагодження на вашому ПК.

Це функціональне, дешеве обладнання, вільне програмне забезпечення (GNU GCC + GDB + OpenOCD) тощо. Досить гнучким (через набір команд низького рівня) є порти для налагодження ARM, програмування FPGA або загальне сканування ланцюгів JTAG .

Комерційні кабелі набагато більш специфічні для платформи і часто містять логіку всередині кабелю. Це дозволяє програмі ПК спілкуватися з пристроєм більш абстрактно, що може бути швидше.

Наприклад: подивіться протокол JLINK USB . Він містить такі команди, як EMU_CMD_WRITE_MEM_ARM79. Кабелі FTDI також можуть виконувати цю команду, але вона переведена на ПК на низькорівневі команди JTAG, які розуміє кабель FTDI. Це також означає, що команда високого рівня (записати деяку пам’ять) розбита на багато інших підкоманд, які JLINK може зробити на самому кабелі. Це може призвести до кращої затримки (з урахуванням обмежень USB) та / або більшої швидкості.

Також комерційні постачальники IDE залежать від того, який кабель вони підтримують, і швидше за все підтримується комерційний кабель. З іншого боку, швидше за все безкоштовні IDE підтримуватимуть дешеві налагоджувальні кабелі FTDI.

Деяке комерційне програмне забезпечення також містить підтримку точок зупинки програмного коду, де ви можете встановити більше точок переривання коду, ніж дозволяє обладнання.

Використання функцій слідування деяких мікроконтролерів вимагає дуже швидкого обладнання для захоплення 4-бітної паралельної шини. Обладнання, здатне використовувати цю функцію, часто містить FPGA для цього.


Нічого не сказати про пропускну здатність, яку вони можуть впоратися; той, для високого класу Xilinx, про який запитує ОП (iC6000), може зробити сліди 6,25 Гбіт / с за допомогою протоколу Aurora, який (1) не підтримується Flyswatters, і навіть якби він був, якою пропускною здатністю вони керуватимуть? І внутрішня пам'ять у них: 8 Гб для слідів на iC6000.
Фіз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.