Внутрисхемные эмуляторы

Внутрисхемный эмулятор (ВСЭ) — программно аппаратное средство, способное замещать собой эмулируемый процессор в реальном устройстве. ВСЭ — наиболее мощное и универсальное отладочное средство.

Функционально ВСЭ делятся на стыкуемые с внешней вычислительной машиной (обычно это — IBM-совместимый ПК) и функционирующие автономно. Последние имеют собственные вычислительные ресурсы и средства ввода/вывода, поэтому при равных возможностях стоят значительно дороже первых, а при одинаковой цене существенно уступают им в функциональных и сервисных возможностях.

С отлаживаемой системой ВСЭ обычно соединяют кабелем со специальной эмуляционной головкой. Относительно недавно появились модели ВСЭ, у которых такая головка конструктивно совмещена с основным блоком и вставляется в отлаживаемую систему вместо МК. Если последний невозможно удалить (выводы впаяны в плату), использование ВСЭ допустимо при условии, что этот МК имеет отладочный режим, в котором все его выводы находятся в третьем (высоко-импедансном) состоянии. В этом случае для подключения ВСЭ используют специальный адаптер-клипсу, подсоединяемый непосредственно к выводам эмулируемого МК.

Как минимум, ВСЭ содержит отладчик, узел эмуляции МК, эмуляционную память и подсистему точек останова. В состав более совершенных ВСЭ могут дополнительно входить трассировщик, процессор точек останова, профилировщик (анализатор эффективности программного кода), таймер реального времени, программно-аппаратные средства, позволяющие читать и модифицировать ресурсы эмулируемого процессора "на лету", программно-аппаратные средства, обеспечивающие синхронное управление и необходимые для эмуляции в мультипроцессорных системах, интегрированную среду разработки.

Отладчик является своеобразным мостом между разработчиком и отладочным средством. Хороший отладчик обеспечивает загрузку отлаживаемых программ в память системы, вывод на монитор состояний и содержимого всех регистров и памяти (а при необходимости — и их модификаций), управление процессом эмуляции.

Более мощные отладчики (обычно их называют высокоуровневыми или High-Level Debuggers) позволяют также:

—вести символьную отладку (благодаря тому, что отладчик, используя специальную информацию, поставляемую компилятором, "знает" адреса всех символьных переменных, массивов и структур). При этом пользователь может оперировать более приемлемыми для человека символьными именами, не утруждая себя запоминанием их адресов;

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

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

Следует отметить, что высокоуровневый отладчик обеспечивает выполнение, всех своих функций только в том случае, если используется кросс-компилятор, поставляющий полную и правильную отладочную информацию (не все компиляторы, особенно их пиратские версии, способны на это), и при этом формат ее представления "знаком" отладчику.

Эмуляционную память используют в процессе отладки вместо ПЗУ разрабатываемой системы. Более того, она позволяет отлаживать программу в отсутствие реальной системы или ее макета. Если необходимо внести изменения в отлаживаемую программу, достаточно загрузить новую или модифицированную программу в память эмулятора, а не заниматься перепрограммированием ПЗУ.

Существуют ВСЭ, которые позволяют пользователю "подставлять" эмуляционную память вместо ПЗУ не только целиком, но и поблочно (в некоторых моделях минимальный размер блока — 1 байт), в порядке, определенном пользователем. Для этого ему достаточно задать распределение памяти данных и памяти программ, в соответствии с которым процессор будет получать доступ и к содержимому ПЗУ в отлаживаемой системе, и к содержимому эмуляционной памяти ВСЭ. Такую память обычно называют памятью с возможностью мэппинга.

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

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

Профилировщик (анализатор эффективности программного кода) позволяет по результатам прогона отлаживаемой программы получить информацию о числе обращений к различным участкам программы и времени, затраченном на их выполнение. Анализ статистической информации, поставляемой профилировщиком, дает возможность выявлять "мертвые" или перенапряженные участки программ и в результате оптимизировать структуру отлаживаемой программы.

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

Наличие в программной оболочке ВСЭ встроенного редактора, менеджера проектов и системы управления существенно облегчает работу разработчика, избавляя его от множества рутинных действий. Для него стирается грань между написанием программы, ее редактированием и отладкой. Переход от редактирования исходного текста к отладке и обратно осуществляется "прозрачно" и синхронно с активизацией соответствующих окон. Менеджер проектов по мере необходимости автоматически запускает компиляцию и активизирует соответствующее окно программного интерфейса. Столь же просто можно перейти к отладке проекта с помощью имеющегося отладчика-симулятора или приступить к "прошивке" ПЗУ отлаженной программой.

Некоторые ВСЭ предоставляют пользователям и другие дополнительные возможности. Среди них особенно следует отметить одну, хотя и довольно специфическую, но в ряде случаев имеющую принципиальное значение, возможность построения многоэмуляторных комплексов, необходимых для отладки мультипроцессорных систем. Отличительная особенность такого комплекса — синхронное управление (с одного компьютера) несколькими эмуляторами.

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

Однако для большинства популярных МК разработаны ВСЭ, не имеющие ограничений по использованию ресурсов отлаживаемых кристаллов. Возможности такого ВСЭ проиллюстрируем на примере модели PICE-51 фирмы "Фитон".

PICE-51 -- устройство, созданное с применением программируемых логических ИС (ПЛИС). Это позволило резко уменьшить размеры ВСЭ, минимизировать отклонения его электрических и частотных характеристик от характеристик эмулируемого МК и тем самым добиться максимальной точности эмуляции на частотах до 33 МГц при напряжениях питания от 3,3 до 5 В. Перезагружаемая аппаратная структура PICE-51 обеспечивает эмуляцию практически всех МК семейства MCS-51. Программная поддержка работает в среде Windows.

PICE-51 состоит из основной платы, сменного адаптера под конкретную группу МК и сменной змуляционной головки также под конкретный тип корпуса. На основной плате собраны трассировщик и процессор точек останова, на плате сменного адаптера — эмулирующий процессор под конкретный тип МК. Эмуляционные головки обеспечивают установку прибора в розетки DIP и PLCC на плате пользователя. Питание осуществляется от блока с выходным напряжением +5 В (0,5 А) или от отлаживаемого устройства. Связь с компьютером — по гальванически развязанному каналу RS-232C при скорости 115 кБод.

Остальные характеристики и возможности PICE-51 следующие:

—точная эмуляция — отсутствие каких-либо ограничений на использование программой пользователя ресурсов МК;

—до 256 Кбайт эмулируемой памяти программ и данных. Поддержка банкированной модели памяти. Распределение памяти между ВСЭ и устройством пользователя с точностью до 1 байта;

—до 512К аппаратных точек останова по доступу к памяти программ и данных;

—аппаратная поддержка для отладки программ на языках высокого уровня;

—трассировка восьми произвольных внешних сигналов;

—четыре выхода синхронизации аппаратуры пользователя;

—трассировщик реального времени
с буфером объемом от 16 до 64К фреймов
(массивов) по 64 бита с доступом "на лету". Трассировка адреса, данных, сигналов управления, таймера реального времени и восьми внешних сигналов пользователя;

программируемый фильтр трассировки;

—аппаратный процессор точек останова с возможностью задания сложного условия останова эмуляции по комбинации сигналов адреса, данных, управления, восьми внешних сигналов, таймера реального времени, счетчиков событий и таймера задержки;

—четыре комплексных точки останова, которые могут быть использованы независимо или в комбинациях по условиям AND/OR/IF-THEN;

—48-разрядный таймер реального времени;

—"прозрачная" эмуляция — доступ "на лету" к эмулируемой памяти, точкам останова, процессору точек останова, буферу трассировки, таймеру реального времени;

—управляемый генератор тактовой частоты для эмулируемого МК. Возможность плавного изменения ее от 500 кГц до 40 МГц;

—встроенная система самодиагностики аппаратуры ВСЭ. Поддерживается разработка программ на уровне ведения проектов для макроассемблера МСА-51 ("Фитон"/"Микрокосм"), а также для пакетов кросс-средств фирм Keil Software и IAR Systems;

—поддержка полнофункциональной символьной отладки программ, созданных с помощью следующих компиляторов: ассемблера ASM51 фирмы Intel, компилятора PL/M фирмы Intel, ассемблеров и компиляторов Си фирм Avocet Systems, Hi-Tech, Tasking Software;

—автоматическое сохранение и загрузка файлов конфигурации аппаратуры, интерфейса и опций отладки. Обеспечена совместимость файлов конфигурации с симулятором PDS-51 и переносимость проектов между PICE-51 и симулятором PDS-51;

—возможность настройки цветов, шрифтов и других параметров для всех окон одновременно и для каждого окна в отдельности.

Столь широкий набор функциональных возможностей делает ВСЭ наиболее мощным и универсальным средством отладки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: