В чем разница между коммерческим отладчиком JTAG и отладчиком с открытым исходным кодом FT2232H OpenOCD?


10

Я видел несколько коммерческих отладчиков JTAG, таких как:

  1. Встроенный в чип анализатор iC6000 (с поддержкой протокола Aurora)
  2. Лаутербах - Средства разработки микропроцессоров

И отладчики JTAG на базе OpenOCD FT2232H:

  1. Flyswatter
  2. NGX ARM USB JTAG

Почему эти коммерческие отладчики являются большими коробками по сравнению с отладчиками FT2232H JTAG, которые имеют только небольшую плату размером с кредитную карту? Какое дополнительное оборудование присутствует в коммерческих отладчиках и в какой части отладки они могут помочь?


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

Может быть, я должен задать вопрос по-другому
robomon

Ответы:


7

Кабели JTAG могут быть построены вокруг всех видов вещей. Например, кабели Xilinx JTAG имеют чип Cypress и FPGA. Кабели Atmel обычно содержат микроконтроллер AVR с поддержкой USB. Они также обычно содержат некоторые компоненты интерфейса / уровня перевода / защиты / изоляции. Это действительно зависит от производителя, они все запатентованы и несовместимы друг с другом. Как правило, вам нужен кабель, который работает с любым программным обеспечением, которое вам нужно использовать. Если все, что вам нужно, это OpenOCD, тогда подойдет кабель на основе FTDI. Но если вы хотите использовать, скажем, Xilinx ChipScope? Тогда вам нужно заплатить либо за реальную вещь из Xilinx, либо за китайскую подделку.

Ссылки у вас не для простых кабелей JTAG, они гораздо более специализированы. Я лично считаю это испытательным оборудованием. В основном это специализированные анализаторы протоколов. Они предназначены для взаимодействия со специализированным оборудованием трассировки, которое встроено в тестируемое устройство. Оборудование трассировки отличается от JTAG. Его цель - записать полную трассировку выполнения работающего программного обеспечения (т. Е. Все полученные ветки) по всем ядрам исполнения и передать ее во внешнюю систему сбора трассировки (рассматриваемый блок) по высокоскоростной шине. Затем трассировка анализируется в автономном режиме. Это НЕ то же самое, что отладка, которая может быть выполнена через JTAG путем установки точек останова и пошагового выполнения кода. Предполагается, что сбор трасс полностью прозрачен для работающей программы (без точек останова или добавленного кода). Поскольку тестируемый процессор может выполнять несколько сотен миллионов инструкций в секунду, для сохранения трассы в том виде, в котором она создается, требуется большая пропускная способность и быстрая память. Связанные устройства поддерживают протокол Aurora (возможно, среди прочих), который представляет собой высокоскоростной последовательный протокол с кодировкой 8b / 10b, чем-то похожий на USB 3, serial ATA, последовательный гигабит / 10G Ethernet и PCIe. Он способен передавать данные со скоростью 6,25 Гбит / с, что значительно больше, чем может обрабатывать USB-соединение с ПК, поэтому полученные данные должны храниться во встроенной памяти для автономного анализа. Эти устройства будут содержать высокопроизводительные FPGA с внутренними высокоскоростными десериализаторами для захвата данных, а также небольшую (несколько ГБ) быструю DRAM,


8 ГБ для трассировки на iC6000, больше, чем на компьютере вашей грамматики :-) И пропускная способность 6,25 Гбит / с через кабель Aurora.
Fizz

6

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

Кабели FTDI JTAG используют набор команд для формирования сигналов JTAG. Это команды очень низкого уровня, часто подробно описывающие работу и работу машины состояний JTAG. Логика отправки правильных команд для вашей настройки выполняется на хосте отладки на вашем ПК.

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

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

Например: посмотрите на протокол USB JLINK . Он содержит такие команды, как EMU_CMD_WRITE_MEM_ARM79. Кабели FTDI также могут выполнять эту команду, но она преобразуется на стороне ПК в низкоуровневые команды JTAG, которые распознает кабель FTDI. Это также означает, что высокоуровневая команда (запись некоторого объема памяти) разбита на множество дополнительных подкоманд, которые JLINK может выполнять на собственном кабеле. Это может привести к лучшей задержке (принимая во внимание ограничения USB) и / или более высокой скорости.

Коммерческие поставщики IDE также могут выбирать, какой кабель они поддерживают, и, скорее всего, поддерживается коммерческий кабель. С другой стороны, более вероятно, что бесплатные IDE будут поддерживать дешевые отладочные кабели FTDI.

Некоторые коммерческие программы также содержат поддержку программных точек останова, где вы можете установить больше точек останова, чем позволяет оборудование.

Использование функции трассировки некоторых микроконтроллеров требует очень быстрого оборудования для захвата 4-битной параллельной шины. Аппаратные средства, поддерживающие эту функцию, часто содержат для этого ПЛИС.


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