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

Дмитриев Универсалный лабораторный стенд. Инструменталные средства проектирования и отладки 2009

.pdf
Скачиваний:
47
Добавлен:
17.08.2013
Размер:
17.8 Mб
Скачать

После этого пользователю доступны три режима выполнения программы:

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

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

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

2.4. «Основной» режим

В данном режиме пользователю доступны следующие функции отладки:

Загрузка абсолютного кода пользовательской программы в эмулятор ПЗУ.

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

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

2.4.1.Загрузка абсолютного кода пользовательской программы

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

31

Рис. 2.7. Сообщение об удачном выполнении загрузки кода пользовательской программы

Рис. 2.8. Сообщения о неудачном выполнении загрузки кода пользовательской программы

общения об удачном (рис. 2.7) или неудачном (рис. 2.8) ее выполнении.

После загрузки абсолютного кода в эмулятор ПЗУ на ЖКИ стенда выводится сообщение «ЭМУЛЯТОР ПЗУ ЗАГРУЖЕН».

После выполнения загрузки первым способом активизируется кнопка «Go» и становится доступной функция запуска пользовательской программы на исполнение (рис. 2.9).

При втором способе загрузки с использованием кнопки «Load+Go» запуск выполняется автоматически после загрузки кода программы. Результат выполнения данных действий аналогичен результату при последовательном нажатии кно-

пок «Load» и «Go».

Рис. 2.9. Программное окно после выполнения загрузки пользовательской программы

32

2.4.2. Запуск пользовательской программы

После нажатия кнопки «Go» происходит запуск на исполнение предварительно загруженной в эмулятор ПЗУ пользовательской программы. На экране ЖКИ дисплея выводится контрольное сообщение «ЗАПУСК ПРОГРАММЫ».

Необходимо обратить внимание на то, что после выполнения запуска пользовательской программы кнопка «Upload Memory» становится неактивной (рис. 2.10) и отменяется функция просмотра ВПД. При необходимости для выполнения данной функции следует перезапустить программу «МОНИТОР-ОТЛАДЧИК».

Рис. 2.10. Программное окно c заблокированным доступом к функции просмотра ВПД после запуска программы на исполнение

2.5. Режим «Останов в КТ»

Для работы в режиме «Останов в КТ» пользователь должен выполнить следующий ряд подготовительных операций.

• Для работы в данном режиме необходимо установить две или более КТ.

33

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

В исходный текст программы необходимо добавить команды для разрешения внешнего прерывания INT0.

На лицевой панели стенда тумблер INT0 должен быть установлен в положение КТ.

В данном режиме пользователю доступны следующие функции отладки:

Загрузка пользовательской программы (кнопка «Load»).

Запуск программы в режиме «Останов в КТ» (кнопка «Go To

BP»).

Запуск программы с остановом в следующей КТ (кнопка

«Next BP»).

Работа в данном режиме начинается открытием файла с листингом программы, подготовленной в соответствии с перечисленными выше правилами. На рис. 2.11 представлен пример такого листинга.

Рис. 2.11. Программное окно c листингом программы, подготовленной для работы в режиме «Останов в КТ»

34

Далее после выполнения рассмотренных ранее подготовительных операций проводится загрузка пользовательской программы (кнопка «Load»). После этого в окне «Program» устанавливаются две или более КТ. Последующий запуск программы осуществляется нажатием кнопки «Go To BP». Выполнение программы будет прервано после выполнения первой команды, из помеченных как контрольные точки останова. При этом в соответствующих окнах можно просмотреть и при необходимости модифицировать содержимое регистров МК, а также ячеек его внутренней и внешней памяти.

2.5.1. Установка контрольных точек

Для задания контрольной точки в окне «Program» необходимо дважды щелкнуть левой кнопкой мыши на строке открытого листинга с требуемой командой. В выделенной строке появятся символы «BP», а сама строка выделяется полосой синего цвета. После загрузки программы в эмулятор ПЗУ и указания двух или более КТ активизируется кнопка «Go To BP» (рис. 2.12) и пользователю становится доступной функция отладки в режиме останова в КТ. Следует обратить внимание на то, что при задании КТ активизируется окно «Trace Table». Однако в данном режиме оно не используется и автоматически закрывается после запуска программы.

Рис. 2.12. Листинг программы с установленными КТ

35

2.5.2.Запуск пользовательской программы в режиме «Останов в КТ»

При нажатии кнопки «Go To BP» системой последовательно выполняются следующие действия. Сначала в память контрольных точек стенда по адресам, соответствующим адресам команд, помеченных как КТ, записываются метки. Затем пользовательская программа запускается на исполнение. После выполнения первой команды, помеченной в листинге как точка контроля, по метке, записанной по ее адресу в памяти контрольных точек, формируется сигнал разрешенного внешнего прерывания INT0. После этого управление передается программе «МОНИТОР» для выполнения последующих отладочных функций по просмотру и модификации памяти и регистров МК. Строка листинга с командой, после выполнения которой возникло прерывание, выделяется полосой синего цвета (рис. 2.13).

Рис. 2.13. Выделение строки с командой, после выполнения которой произошел останов в первой по счету КТ

36

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

В просмотровом окне внутренней памяти данных «Memory» после останова в первой контрольной точке можно наблюдать значение C0, записанное по адресу 02h (рис. 2.14).

Рис. 2.14. Состояние внутренней памяти данных после останова в первой КТ

Как видно из листинга программы, это значение должно измениться на 02h после выполнения команды, выбранной в качестве второй КТ. В этом убедимся позже при выполнении просмотра окна «Memory» после останова во второй КТ.

2.5.3. Шаг к следующей КТ

Как видно из рис. 2.13, после останова в первой КТ активизируется кнопка «Next BP», после нажатия которой пользовательская программа выполняется до останова в следующей КТ. На рис. 2.15 показан листинг программы после ее останова во второй по счету КТ.

37

Рис. 2.15. Автоматическое выделение курсором строки с командой, после выполнения которой произошел останов во второй по счету КТ

При просмотре окна «Memory» (рис. 2.16) видно, что после выполнения команды, выбранной в качестве второй КТ, по адресу 02h действительно записано значение 02h.

Рис. 2.16. Состояние внутренней памяти данных после останова во второй КТ

38

2.5.4. Окно регистров «Registers»

После выполнения функции «Запуск программы в режиме «Останов в КТ» автоматически активизируется окно регистров «Registers». В данном окне после останова в КТ отображаются состояния некоторых регистров специальных функций, портов ввода-вывода и четырех банков регистров общего назначения МК. На рис. 2.17 приведено содержимое данного окна после останова программы в первой контрольной точке.

Рис. 2.17. Содержимое окна «Registers» после останова в первой КТ

Помимо просмотра, в данном окне пользователь может и модифицировать (редактировать) состояния регистров. Нажатие кнопки «Edit» открывает доступ к редактированию содержимого окна. На рис. 2.18 приведено содержимое окна «Registers» после останова во второй КТ и выбора режима редактирования. Пусть необходимо изменить содержимое R2 нулевого банка с 02 на FF. Осуществив редактирование окна, нажимаем кнопку «Load».

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

39

Рис. 2.18. Окно «Registers» после останова в КТ2 и выбора режима редактирования

Рис. 2.19. Контрольное сообщение об успешном завершении загрузки отредактированных значений регистров

Наблюдать результат загрузки можно после перезапуска программы с остановом в следующей КТ. На рис. 2.20 показано содержимое окна «Registers» после останова программы в третьей КТ. Из рисунка видно, что ячейка по адресу 03h содержит код 03h. Это значение является результатом выполнения команды, выбранной в качестве третьей контрольной точки. Ячейка с адресом 02h содержит значение, которое является результатом редактирования в окне, выполненного пользователем после останова программы во второй КТ.

40

Соседние файлы в предмете Интегрированные системы управления и проектирования