Обзор существующих инструментальных и программных средств разработки и отладки микропроцессорных систем

 

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

К числу основных программно-аппаратных средств отладки относятся внутрисхемные эмуляторы, программные симуляторы, платы развития, мониторы отладки, эмуляторы ПЗУ и интегрированные среды разработки программного обеспечения. Существуют так же комбинированные устройства и наборы.

 

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

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

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

Как минимум, эмулятор содержит следующие функциональные блоки:

- отладчик, позволяющий пользователю одновременно контролировать ход

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

- узел эмуляции микроконтроллера;

- эмуляционную память, используемую вместо ПЗУ в отлаживаемой

системе;

- подсистему точек останова.

Более продвинутые модели могут содержать дополнительно:

- процессор точек останова, позволяющий останавливать выполнение

программы, или выполнять иные действия, при выполнении заданных пользователем условий;

- трассировщик, логический анализатор, работающий синхронно с

процессором и фиксирующий поток выполняемых инструкций и состояния выбранных внешних сигналов;

- профилировщик, анализирующий эффективность программного кода и

позволяющий оптимизировать структуру отлаживаемой программы;

- программно-аппаратные средства, обеспечивающие возможность чтения

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

- программно-аппаратные средства, обеспечивающие синхронное

управление, необходимые для эмуляции в мультипроцессорных системах;

- интегрированную среду разработки.

Широкий набор функциональных возможностей, делает внутрисхемные эмуляторы наиболее мощным и универсальным отладочным средством, которое делает процесс функционирования отлаживаемого контроллера прозрачным, легко контролируемым, произвольно управляемым и модифицируемым. В таблице 1 приведена сравнительная характеристика наиболее распространенных эмуляторов для микроконтроллеров семейства Intel 8051.

Существенным недостатком таких средств отладки является ориентированность на определенный тип микроконтроллера и высокая стоимость.

 

Симуляторы

Симулятор - программное средство, способное имитировать работу микроконтроллера и его памяти. Как правило, симулятор содержит в своем составе отладчик, модель ЦПУ и памяти. Более продвинутые симуляторы содержат в своем составе модели встроенных периферийных устройств, таких, как таймеры, порты, АЦП, и системы прерываний.

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

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

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

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

Для того чтобы в простом симуляторе смоделировать работу датчика, нужно вручную изменять текущее состояние модели периферийного устройства, к которому в реальной системе подключен датчик. Если, например, при приёме байта через последовательный порт устанавливается некоторый флажок, а сам байт попадает в определённый регистр, то оба эти действия нужно производить в симуляторе вручную.

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

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

 

Платы развития

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

На этой плате также устанавливают схемы связи с внешним компьютером. Как правило, там же имеется свободное поле для монтажа прикладных схем пользователя. Иногда предусмотрена уже готовая разводка для установки дополнительных устройств, рекомендуемых фирмой. Например, ПЗУ, ОЗУ, ЖК-индикатор, клавиатура, АЦП и др.

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

Для большего удобства платы развития комплектуются еще и простейшим средством отладки на базе монитора отладки. Используются два типа мониторов отладки: один для микроконтроллеров, имеющих внешнюю шину, а второй – для микроконтроллеров, не имеющих внешней шины.

В первом случае отладочный монитор поставляется в виде микросхемы ПЗУ, которая вставляется в специальную розетку на плате развития. Плата также имеет ОЗУ для программ пользователя и канал связи с внешним компьютером или терминалом.

Во втором случае плата развития имеет встроенные схемы программирования внутреннего ПЗУ микроконтроллера, которые управляются от внешнего компьютера. При этом программа монитора просто заносится в ПЗУ совместно с прикладными кодами пользователя. Прикладная программа должна быть специально подготовлена: в нужные места необходимо вставить вызовы отладочных подпрограмм монитора. Затем осуществляется пробный прогон. Чтобы внести в программу исправления, пользователю надо стереть ПЗУ и произвести повторную запись. На такой алгоритм отладки рассчитаны платы развития для МК семейств PICmicro (Microchip), 80С750 (Philips), 89С2051 (Atmel).

Готовую прикладную программу получают из отлаженной путем удаления всех вызовов мониторных функций и самого монитора отладки. Возможности отладки, предоставляемые комплектом «плата развития плюс монитор», не столь универсальны, как возможности внутрисхемного эмулятора, да и некоторая часть ресурсов МК в процессе отладки отбирается для работы монитора.

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

 

Эмуляторы ПЗУ

Эмулятор ПЗУ – программно-аппаратное средство, позволяющее замещать ПЗУ на отлаживаемой плате, и подставляющее вместо него ОЗУ, в которое может быть загружена программа с компьютера через один из стандартных каналов связи. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ. Эмулятор ПЗУ нужен только для микроконтроллеров, которые могут обращаться к внешней памяти программ. Это устройство сравнимо по сложности и по стоимости с платами развития и имеет одно большое достоинство: универсальность. Эмулятор ПЗУ может работать с любыми типами микроконтроллеров.

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

В последнее время появились модели интеллектуальных эмуляторов ПЗУ, которые позволяют «заглядывать» внутрь МК на плате пользователя. Интеллектуальные эмуляторы представляют собой гибрид из обычного эмулятора ПЗУ, монитора отладки и схем быстрого переключения шины с одного на другой. Это создает эффект, как если бы монитор отладки был установлен на плате пользователя и при этом он не занимает у микроконтроллера никаких аппаратных ресурсов, кроме небольшой зоны программных шагов, примерно 4Кбайт.

Подобный эмулятор разработан, например, фирмой «Фитон» для всех существующих и будущих микроконтроллеров, которые имеют ядро 8051, но дополнительно насыщены различными устройствами ввода/вывода. Изделие поддерживает множество самых разных микроконтроллеров различных фирм производителей.

 

Интегрированные среды разработки

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

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

Использование IDE позволяет избежать большого объёма рутинной работы и там самым существенно повысить производительность труда программиста.

Интегрированная среда разработки программного обеспечения позволяет:

- использовать встроенный многофайловый текстовый редактор,

специально ориентированный на работу с исходными текстами программ;

- наблюдать одновременно (в многооконном режиме) диагностику

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

- вести параллельную работу над несколькими проектами.

 

Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого. Опции используемых компиляторов и список исходных файлов проекта устанавливаются в диалоговых меню и сохраняются в рамках проекта, устраняя необходимость работы с неудобными batch-файлами:

- подвергать перекомпиляции только редактировавшиеся модули;

- загружать отлаживаемую программу в имеющиеся средства отладки и

работать с ними без выхода из оболочки;

- подключать к оболочке практически любые программные средства.

 

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