На большинстве современных процессоров большая часть тяжелой работы по отладке выполняется на кристалле.До того, как отладка на кристалле была обычным делом, внутрисхемные эмуляторы были очень сложными и даже более дорогими - я помню аренду одного для проекта Intel 8051, за еженедельную аренду, вероятно, больше, чем стоимость большинства модулей JTAG.Это была также большая плита размером с книгу с дорогим и хрупким отладочным зондом, который вы подключили к своей плате вместо процессора.
Несмотря на то, что отладка на кристалле предоставляет такие услуги, как пошаговое выполнение команд на уровне команд, точки останова и доступ к памяти и регистру, хосту отладки необходимо выполнить некоторую работу.Хотя часто эта работа выполняется хост-ПК, в более дорогих аппаратных решениях для отладки она часто реализуется в интерфейсе отладчика.
Например, для отладчика GNU GDB требуется «заглушка GDB» - программный интерфейс междупрограммное обеспечение хост-отладчика и целевое оборудование.Заглушка GDB может работать на цели - например, для Linux это позволяет «удаленную отладку» по сети или даже по последовательному интерфейсу без какого-либо оборудования для отладки, но не подходит для отладки «на голое железо» и «отладки платы».В других случаях заглушка работает на хосте - например, общий OpenOCD обеспечивает это для очень простого аппаратного отладочного оборудования JTAG.В более дорогих отладчиках заглушка может работать на самом оборудовании отладчика, поэтому аппаратное обеспечение должно иметь возможность обработки.
Физический интерфейс для JTAG или проприетарный интерфейс отладки на кристалле является тривиальным.Реализации, использующие резидентное программное обеспечение для отладки, такое как OpenOCD, не должны быть очень сложными.Фактически, в те дни, когда на компьютерах были параллельные порты для подключения принтеров, это можно было использовать для передачи сигналов JTAG, поэтому аппаратное обеспечение было совершенно тупым - так называемая конструкция "Wiggler".Простые современные конструкции типа «вигглер» также глупы, но для выполнения этой функции обычно требуется микросхема устройства USB с параллельным портом или небольшой микроконтроллер.Они часто бывают довольно медленными.
Более сложные отладчики обычно содержат микроконтроллер для обеспечения интерфейса USB-устройства и более быстрого ввода-вывода для JTAG.Устройства, поддерживающие трассировку отладки, требуют относительно более высокой скорости ввода-вывода и возможности быстрой передачи больших объемов данных.
Все отладчики iSystem в https://www.isystem.com/products/hardware/on-chip-analyzers.html также имеют соединение Ethernet и большую широкополосную связь на-бортовые буферы трассировки отладки, а также аналоговые и цифровые входы для мониторинга подключенной системы параллельно с отладкой кода.Они кажутся гораздо более сложными, чем типичный отладчик низкого уровня, который вы описываете как « интерфейс USB на одном конце и интерфейс JTAG на другом ».Это говорит о том, что они имеют возможности сверх простого отладчика.
Устройства iSystem также поддерживают несколько архитектур, где большинство недорогих решений зависят от архитектуры или полагаются на хост для поддержки нескольких архитектур.Ничто особенно не делает их специфичными для архитектуры на аппаратном уровне.
В конечном итоге цена, которую вы платите, не имеет никакого отношения к стоимости физического оборудования - у Raspberry Pi за 35 долларов, вероятно, больше возможностей, чем даже у самого сложного отладчика JTAG.,Объемы этих устройств, особенно высококлассных устройств, невелики, а затраты на разработку относительно высоки, поэтому вы платите за амортизированные затраты на разработку, опыт и текущие продажи и техническую поддержку, предоставляемую поставщиком / производителем.Как разработчик, вы сами поймете, что эти вещи не бесплатны, если вы зарабатываете на жизнь, а ваша компания получает прибыль.Глядя на документацию по iSystem, вы также не просто покупаете оборудование - в комплект также входит программное обеспечение для отладки WinIDEA - стоит ли это чего-то, это вопрос мнения, я не знаком с ним.
Если ваши потребности в отладке удовлетворены « USB-интерфейсом на одном конце и JTAG-интерфейсом на другом.» , возможно, вам не нужно такое сложное устройство как iSystem. Он также поддерживает функции осциллографа и логического анализатора, но синхронен с трассировкой инструкций кода - очень мощный для сложных систем.