Зачем нужно устройство между JTAG и программным обеспечением TRACE32 от Lauterbach? - PullRequest
0 голосов
/ 23 мая 2019

Какой смысл иметь эту прямоугольную штуку, такую ​​как https://www.microsemi.com/images/soc/partners/solution/ip/Trace_small.jpg? Как получается, что gdbserver способен отлаживать через Ethernet без каких-либо дополнительных H / W, и этот гигантский S / W TRACE32 не может декодировать / кодировать поступающие сигналы вне и в порт JTAG? Разве JTAG не является портом? Разве это не посылает сигналы? Почему этот кусок ПО не может их интерпретировать? Зачем нужна эта штука (что, кстати, когда-то работает, когда-то - нет, а вообще - черная магия). Существует ли причина существования определенного устройства между JTAG и USB-портом (имея в виду, что в установках TRACE32 есть 800 МБ ...)

1 Ответ

3 голосов
/ 01 июня 2019

Вероятно, следует учитывать некоторые аспекты:

  • Отладка в режиме выполнения и отладка в режиме остановки
  • Простой преобразователь сигналов и интеллектуальный отладочный зонд
  • Чистый JTAG-отладчик и инструмент отладки и трассировки

Отладка в режиме выполнения и отладка в режиме остановки

" Отладка в режиме выполнения " означает "Отладка приложения в системе, работающей под управлением операционной системы". Это то же самое, что происходит при отладке приложения на компьютере с Windows / Linux / Mac. Когда вы достигаете точки останова в вашем приложении, процессор все еще работает. Это только отлаженное приложение, которое останавливается.
Поэтому, если ваша встроенная система работает под управлением операционной системы, вы можете подключить GDB через Ethernet к серверу gdb, работающему в вашей целевой ОС, что позволит вам отлаживать приложение на вашем устройстве.

" Отладка в режиме остановки " означает "Отладка всего программного обеспечения на ЦПУ путем управления состоянием работы ЦП". Так что, если вы достигнете точки останова на процессоре с отладкой в ​​режиме остановки, весь процессор остановится. Это позволяет отлаживать «голые железные» приложения или саму операционную систему или приложение в контексте операционной системы или даже гипервизора.
Для отладки в режиме остановки обычно требуется чип с интерфейсом JTAG (или SWD или аналогичный) и внутрисхемный отладчик . В основном то, что позволяет вам управлять процессором на очень низком уровне. В прежние времена это было сделано с помощью внутрисхемного эмулятора (вместо JTAG), который заменил процессор на специальную микросхему связывания, которая позволяла также контролировать чип на очень низком уровне. Чтобы еще больше сбивать с толку мысли, некоторые поставщики называют там JTAG-зонды также «внутрисхемным эмулятором».

Простой преобразователь сигналов и интеллектуальный отладочный зонд

Для отладки в режиме остановки вам необходим датчик, который преобразует интерфейсы вашего ПК в низкоуровневый интерфейс отладки вашего чипа. Так что в основном какой-то конвертер USB в JTAG. Или и конвертер Ethernet в JTAG.

Самый простой зонд, о котором я могу подумать, - это просто какое-то устройство, которое позволяет вам управлять некоторыми выводами GPIO (вход общего выхода) через USB. Тогда весь протокол связи JTAG и более высокий протокол отладки полностью сделаны в программном обеспечении. Преимущество: очень гибкий. Недостаток: очень медленный.

Более продвинутые пробники знают, как выполнять JTAG, и, таким образом, только протокол отладки высокого уровня должен обрабатываться через USB, в то время как связь JTAG низкого уровня выполняется самим пробником. Эти зонды часто все еще довольно медленные, поскольку USB не так эффективен, когда вам нужны короткие задержки.

Высокопроизводительные датчики обычно обрабатывают сам протокол отладки, который индивидуален для каждой архитектуры ЦП или иногда даже для одного чипа. Таким образом, хост-компьютер, на котором запущено программное обеспечение для отладки, отправляет только высокоуровневую команду, например «сделать один шаг», а все остальное обрабатывается самим зондом. Это повышает производительность, особенно со сложными многоядерными чипами, которые часто требуют много JTAG-связи, пока не будет выполнена даже простая задача.

Простые преобразователи USB в JTAG часто уже находятся на печатной плате дешевых оценочных плат. Теоретически вы могли бы также интегрировать такой преобразователь непосредственно в сам чип, но обычно производители чипов этого не делают, так как это увеличило бы стоимость каждого чипа. В профессиональном секторе отладчики высокого класса довольно распространены, потому что компании не хотят, чтобы их разработчики сидели перед своим ПК, просто ожидая, пока медленный отладчик завершит загрузку приложения.

В общем, я предполагаю, что чем быстрее, гибче и функциональнее отладчик, тем он больше и дороже. Так что многое зависит от ваших потребностей.

Чистый JTAG-отладчик и инструмент Отладка и трассировка

Все отладчики JTAG позволяют вам останавливать и перезагружать ваш ЦП, устанавливать точки останова, а также считывать и записывать память и регистры ЦП. Это остановка отладки, о которой я упоминал выше.

Некоторые отладочные зонды также позволяют записывать выполнение кода и доступ к данным ЦП во время его работы и без остановки. Это называется трассировкой в ​​реальном времени. Для такой записи трассировки вам понадобится как отладочный зонд, так и чип, который это поддерживает.

например. на чипах ARM Cortex эта функция называется ETM, которая недоступна для чипов Cortex-M0 / M0 +, но обычно доступна для чипов Cortex-A / R и чипов Cortex-M3 (и более), когда чип имеет 100 контактов и более.

Инструменты, поддерживающие трассировку, обычно больше и дороже, чем отладочные зонды без поддержки трассировки.
Вещи, которые влияют на цену отладчика с трассировщиком:

  • Размер внутренней памяти для сохранения данных трассировки
  • Поддерживаемая максимальная скорость на одном выводе целевой трассы (для параллельной трассы).
  • Количество поддерживаемых выводов трассы (для параллельной трассировки) (например, трассировка SWO с одним выводом обычно намного дешевле, чем трассировка ETM).
  • Поддержка высокоскоростных портов последовательной трассировки / максимальная скорость на линию / количество поддерживаемых линий.
  • Скорость загрузки на хост-компьютер (есть ли у зонда интерфейс USB 3 и / или Gigabit Ehternet или только USB 2?)

Устройство от Lauterbach, на которое вы ссылаетесь, поддерживает трассировку чипов Cortex-M с общей скоростью 1600 Мбит / с на порт трассировки. Официальная страница продукта здесь https://www.lauterbach.com/microtrace.html


Вы написали

что, кстати, когда-то работает, когда-то нет, и вообще это черная магия

Если ваш инструмент не работает, я предлагаю запросить поддержку у вашего поставщика инструмента. Для посещения Лаутербаха https://www.lauterbach.com/tsupport.html
Отладка JTAG сама по себе не является черной магией: сам протокол JTAG является стандартом IEEE, а протокол отладки (на следующем уровне) часто описывается в общедоступных руководствах производителей микросхем. Тем не менее, это, конечно, много техники.

...