Что находится внутри коробки отладчика и как она работает точно - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю с отладчиком iSystem, который используется для отладки встроенных автомобильных систем.

Я не могу не задаться вопросом, что находится внутри таких коробок и как они работают точно.

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

Является ли блок просто ответственным за установку точек останова в нашем коде в режиме реального времени через интерфейс JTAG (управляемый нами) и передачу нам информации о состоянии MCU через USB? Что бы там было, что делает его таким сложным и дорогим?

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

На большинстве современных процессоров большая часть тяжелой работы по отладке выполняется на кристалле.До того, как отладка на кристалле была обычным делом, внутрисхемные эмуляторы были очень сложными и даже более дорогими - я помню аренду одного для проекта 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. Он также поддерживает функции осциллографа и логического анализатора, но синхронен с трассировкой инструкций кода - очень мощный для сложных систем.

0 голосов
/ 19 апреля 2019

Что бы там было именно так, что делает его таким сложным и дорогим

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

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

что находится внутри таких коробок

Обычно некоторые микроконтроллер с поддержкой USB иСдвиг уровня, иногда с изоляцией (что вам понадобится для приложений интернет-провайдеров).

...