Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

___МЕТОДИЧКИ_2013 / Пособие по ОСМПС (pdf) / 5_ОТЛАДОЧНЫЕ МОНИТОРЫ

.pdf
Скачиваний:
47
Добавлен:
15.03.2016
Размер:
155.02 Кб
Скачать

5. ОТЛАДОЧНЫЕ МОНИТОРЫ (ПЗУ-МОНИТОРЫ)

5.1. ОТЛАДКА С ПОМОЩЬЮ ПЗУ-МОНИТОРОВ

5.1.1. Принципы использования отладочных мониторов

На заре микропроцессорной техники инженеры-разработчики использовали простую индикацию состояний портовых выводов с помощью светодиодов. Однако вскоре этого стало недостаточно. Им хотелось знать, что происходит внутри микропроцессорных устройств. В результате были разработаны резидентные мониторы отладки, или ПЗУ-мониторы (ROM-monitors).

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

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

установку точек останова,

запуск и останов загруженной программы в реальном времени,

проход программы пользователя по шагам,

просмотр, редактирование содержимого памяти и управляющих регистров.

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

Рис. 5.1. Система с ПЗУ-монитором

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

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

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

Среди недостатков первых ПЗУ-мониторов были такие, как малое число команд и очень примитивный (а зачастую трудный в освоении) интерфейс. Кроме того, для их работы в целевом устройстве требовался рабочий последовательный порт, плюс к этому ПЗУ-мониторы изменяли карту памяти целевого устройства. Даже для самых скромных мониторов требовалось несколько килобайт дополнительной памяти. Набор команд был довольно ограничен: пошаговое исполнение (но только машинных команд), точки останова (но никаких точек просмотра - watchpoint), отображение содержимого регистров и ячеек памяти, чтение ячеек памяти.

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

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

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

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

5.1.2. Современные ПЗУ-мониторы

На фоне симуляторов и эмуляторов с отладкой на языках высокого уровня ПЗУмониторы, которые ориентированы на ассемблер, начали выглядеть устаревшими. Однако оказалось, что такие мониторы очень просто модернизировать: создав монитор целевого устройства, который "обманывает" отладчик высокого уровня (компонент эмулятора) и вынуждает его "поверить" в существование аппаратной части эмулятора, пользователь монитора мог обратиться к функциям, ранее доступным только пользователям эмуляторов. Теперь скомпилированную тестовую программу можно загружать в целевую систему для пошагового исполнения операторов на языке Си; устанавливая при этом контрольные точки по любым адресам с помощью исходного текста или таблицы символов.

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

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

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

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

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

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

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

5.2. ПОЛЬЗОВАТЕЛЬСКИЕ ПРИЛОЖЕНИЯ СО ВСТРОЕННЫМИ ОТЛАДЧИКАМИ

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

Распространение микроконтроллеров с расположенной на кристалле флэшпамятью или однократно программируемым ПЗУ часто исключает возможность применения мониторов, поскольку ограниченные возможности внешней шины не способствуют подключению ОЗУ большого объема.

Заключение

ПЗУ-монитор занимает пару килобайт ПЗУ контроллера и позволяет внешнему ПК загрузить программу в область ОЗУ контроллера, где возможно ее исполнение.

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

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

Вопросы для самоконтроля

1.Что собой представляет отладочный монитор, и какое оборудование требуется для его работы?

2.Каковы функции отладочных мониторов?

3.Перечислите достоинства и недостатки отладочных мониторов.

4.Каковы области использования отладочных мониторов?