3.3.2 Внутрисхемный эмулятор Внутрисхемный эмулятор – это аппаратное устройство, используемое при
отладке, обычно выполняемое в форме микропроцессора с дополнительными
контактами.
Внутрисхемные эмуляторы подключаются к отлаживаемой или
тестируемой системе вместо целевого микропроцессора или микроконтроллера
и позволяют гибко управлять поведением системы на протяжении процесса
отладки, собирать данные о состоянии ее различных объектов, выполнять
программы пользователя в различных режимах: в режиме реального времени
(непрерывное выполнение программы с заданного адреса), в пошаговом
режиме, в режиме с остановками функционирования по заданному условию.
Зачастую они позволяют эмулировать не только целевой процессор, но и
память, тактовый генератор, устройства ввода-вывода.
Применение внутрисхемных эмуляторов позволяет решить почти все
проблемы, связанные с отладкой и тестированием программного обеспечения и
аппаратуры. К сожалению, крупным недостатком внутрисхемных эмуляторов
является их очень высокая стоимость.
Внутрисхемные эмуляторы являются средством, заменяющим на
аппаратном уровне часть целевой системы. В настоящее время распространены
два основных варианта:
• эмулятор процессора;
• эмулятор ПЗУ.
В последнее время, с появлением ОКМЭВМ со встроенной постоянной
памятью (в виде FLASH или ОТР), второй вариант эмуляторов начал
постепенно выходить из употребления. В принципе, внутрисхемный эмулятор
Ри сунок 62: Внутрисхемный эмулятор для процессоров фирмы Atmel
156
имеет тот же набор функций, что и программный симулятор. Приведем
основные отличия:
• отладка возможна на реальном оборудовании (что не исключает
возможности программной имитации окружения);
• отладка может производиться в реальном времени.
Интересным вариантом внутрисхемной эмуляции является JTAG. В
классических эмуляторах процессора для проведения отладки центральный
процессор заменяется на эмулирующую головку (у ряда новых процессоров
эмулирующую головку можно подключать непосредственно к впаянному
кристаллу). Это приводит к необходимости ставить на плату панель под
процессор, что уменьшает надежность системы. При использовании технологии
JTAG, эмулятор подключается к плате через специальный технологический
разъем. При этом процессор не вынимается. JTAG позволяет отключить ядро
процессора и управлять шиной адреса, данных и управления напрямую. К
сожалению, для управления всеми выводами процессора необходимо
передавать через порт JTAG большое количество информации. Поэтому
отладка в реальном времени (на частоте работы процессора) невозможна.
Рисунок 63: Отладка с помощью бесплатного отладчика GDB-Insight
157
Большим достоинством JTAG является аппаратная простота эмулятора.
Например, в самом простом случае, достаточно подключить порт JTAG к
параллельному LPT порту обычного ПК.