Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
97.28 Кб
Скачать

3.3.Отладка программ

Программный симулятор/отладчик (Simulator/Debugger по терминологии фирмы Avocet Systems Corp.) для однокристальных микроконтроллеров семейства МК51 находится в файле avsim51.exe. Запуск симулятора осуществляется из командной строки, где должно быть следующее:

D: ...> avsim51.exe –c1

Здесь “–с1” – опция, сообщающая программе тип монитора (EGA или VGA), при этом на экране симулятора будет цветное изображение. При отсутствии этой опции изображение будет черно-белым.

После нажатия клавиши Enter на экране компьютера появляется окно симулятора/отладчика AVSIM51 с меню, предлагающее выбрать тип однокристального МК. Выберите вариант А – МК 8051/8751, соответствующий отечественным аналогам КМ1816ВЕ751, КР1816ВЕ51, КМ1830ВЕ751, КР1830ВЕ51 (МК с внутренней памятью программ). Выбор осуществляется нажатием соответствующей клавиши на клавиатуре.

Картину, которая затем отобразится на экране, удобно разбить на две области: дисплейную (display) и командную (command), согласно терминологии Avocet System Corp.

Командная часть служит для ввода команд управления отладчиком. Командная часть расположена в нижней части экрана и состоит из двух строк. Нижняя строка содержит название команды, а верхняя – выполняемую функцию. Перемещение по командной строке выполняется клавишами  и  клавиатуры. Командная строка может отображать одно из двух альтернативных меню:

Dump Expression commandFile Help IO Load

или

Memory Patch Quit Reset Set setUp View eXecute

Переключение меню осуществляет клавишами  и .

Примечание. Так как программа avsim.exe является приложением DOS, то перемещение по окну может выполняться только с помощью клавиатуры (мышь, увы, не действует).

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

Рассмотрим, в качества примера, получение помощи. Для этого выбираем из меню команду Help, нажимаем Enter. Открывается подменю:

HELP: Commands Display Simulation Avocet

Выбираем команду Commands и нажимаем Enter. На экране появляются сведения о методах ввода команд (к сожалению, текст помощи написан очень кратко и малопонятно).

В дальнейшем процедуру выбора и ввода команд будем отображать в краткой форме:

Help  Commands

По умолчанию предполагается, что после каждой команды нажимается клавиша Enter.

Отказ от выбора пункта меню (в любом месте) производится с помощью нажатия комбинации клавиш Ctrl-C.

Выход из отладчика AVSIM51 в WINDOWS осуществляется следующими командами:

Quit  Exit

Примечание. В отличие от окон DOS для программ x8051.exe и link.exe, выход из программы avsim51.exe путем закрытия окна с помощью мыши приводит к появлению предупреждения WINDOWS. Поэтому лучше и безопаснее выходить из отладчика с помощью выполнения команд

Quit  Exit

Задание. Осуществите выход из отладчика. Затем запустите отладчик, выделив курсором файл avsim51.exe и нажав Enter (т.е. без опции –с1). Убедитесь, что изображение будет черно-белым.

Выйдите из отладчика и вновь запустите его с опцией –с1.

Набирать опции на клавиатуре не совсем удобно. Для упрощения процедуры запуска отладчика можно создать командный файл avsim51.bat, имеющий содержание:

avsim51.exe –c1

Теперь для запуска отладчика достаточно выделить курсором файл avsim51.bat и нажать клавишу Enter.

Задание. Произведите запуск отладчика с помощью файла avsim51.bat.

Дисплейная (экранная) часть симулятора/отладчика AVSIM51 отображает программные модели внутренних блоков микроконтроллера. Слева на экране монитора отображается область памяти программ, где располагаются коды команд (для типов МК, не имеющих внутренней памяти программ, отображается область внешней программной памяти). Посередине в верхней части экрана отображаются внутренние регистры МК, в нижней части расположены две области внутренней памяти данных - дампы (от англ. dump) по 32 ячейки памяти. В правой части экрана сверху расположена строка состояния управляющих клавиш, в средней части – регистры специальных функций, в нижней части – состояние портов ввода/вывода.

Симулятор/отладчик AVSIM51 может находиться в любой момент времени только в одном из двух основных режимах работа с меню (режим меню) и работа с экраном симулятора (режим экрана). В режиме меню мигающий курсор находится внизу экрана монитора в области командной части, в режиме экрана – он находится в верхней части.

Переключение симулятора/отладчика из режима меню в режим экрана и наоборот осуществляется клавишей Esc. При этом курсор также перемещается.

При отладке программ необходимо перемещаться между разными блоками программной модели в пределах дисплейной части симулятора. Перемещение по адресному пространству, где размещаются коды программы, осуществляется изменением содержимого программного счетчика PC. Адрес ячейки памяти, соответствующий содержимому счетчика PC, подсвечивается темной полосой. Если в PC записано число 0004, то полоса переместится на ячейку 0004. Перемещение между различными блоками экрана можно осуществлять клавишами , , , . При необходимости быстрого перемещения курсора к нужному блоку удобно использовать «горячие» клавиши. Описание таких клавиш можно узнать, выбрав команду: Help  Display.

Список «горячих» клавиш:

Ctrl-A/B Аккумулятор / регистр B

Ctrl-P Программный счетчик PC

Ctrl-S Указатель стека SP

Ctrl-R Регистровый банк

Alt-0/7 Регистры R0/R7

Ctrl-D Указатель данных DPTR

Ctrl-C/X/F/O Флаги: С/AC/F0/OV

Ctrl-I Регистр IE

Ctrl-T Таймер 0

Alt-A Дамп 1 (верхний на экране)

Alt-B Дамп 2 (нижний на экране)

Alt-P Порт Р0

Alt-S Регистр SBUF

Alt-Y Счетчик циклов.

Задания.

  1. Выполните перемещение к аккумулятору и занесите в него последовательно числа 55H, 00H.

  2. Выполните перемещение к порту P3 и занесите в него код 24Н.

  3. Переместите курсор к ячейке памяти данных 30Н, отображаемой во втором дампе. Запишите в нее число 77H.

  4. Запишите в РС код 0100Н, а затем 0000Н.

После запуска симулятора/отладчика на экране в окнах Data Space (по терминологии AVSIM51 области Dump1 и Dump2) отображаются 64 ячейки внутренней памяти данных (ПД) с адресами 00Н по 3FH. Часто при отладке программ требуется следить за состоянием ячеек с другими адресами. Напоминаем, что внутренняя память данных содержит 128 ячеек с адресами от 00Н по 7FН. Можно изменить начальные адреса в любом из окон области Data Space.

Например, используем нижнее окно Data Space (Dump2) для отображения ячеек ПД, начиная с адреса 50Н. С этой целью необходимо выполнить команду:

DUMP.

Затем в командной строке ввести номер дампа 2:

Select DUMP:2.

Затем выбрать тип адресации ячеек дампа:

Absolute

И, наконец, в командной строке набрать начальный адрес области памяти (дампа 2) в hex-коде:

Enter Expression in Data Address Space: 50H.

После нажатия клавиши Enter убеждаемся, что начальный адрес нижнего окна Data Space действительно стал 50H, а в ячейках памяти, отображаемых в этом окне, появились нули.

Задание. Занесите в ячейки ПД с адресами 60H – 62H значения AAH.

Для отладки программы ее нужно загрузить в память симулятора, причем программа должна быть обязательно в формате Intel Hex.

Рассмотрим процесс загрузки программы, находящейся в файле proba.hex.

Необходимо переключиться в режим меню симулятора с помощью клавиши Esc и выполнить следующие команды:

Load  Program

После этого в командной строке появится сообщение:

>Enter filename:_

Необходимо ввести полное имя файла, т.е. proba.hex, и нажать Enter.

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

При запуске симулятора AVSIM51 некоторые ячейки памяти программ, соответствующие векторам прерываний, получают символические имена, зарезервированные ассемблером. Например: ячейка с адресом 0000H – RESET (вектор сброса), ячейка с адресом 0003H – EXIT0 (вектор внешнего прерывания 0), ячейка 0000BH – TIMER0 (вектор прерывания от таймера/счетчика 0) и т.д. Можно отключить режим отображения меток в программе, нажав комбинацию клавиш Alt-F5.

Задание. Отключите отображение меток в программе PROBA.

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

  1. пошаговом;

  2. автоматическом.

Управление отладкой (по англ. simulation) осуществляется с помощью функциональных клавиш F1-F10. Информацию о назначении этих клавиш можно получить, выполнив команды:

Help  Simulation

Пошаговый режим отладки осуществляется с помощью клавиши F10. При каждом нажатии клавиши выполняется одна команда программы.

Задание. Исследуйте работу программы PROBA в пошаговом режиме. Сделайте несколько шагов. Наблюдайте за изменением содержания программного счетчика PC. Убедитесь, что программа зацикливается.

Пошаговый режим удобен для детального изучения программ, анализе их работоспособности. Для проверки работы программы при различных входных параметрах более удобен «автоматический» режим, который соответствует естественному ходу выполнения программы микроконтроллером. Запуск автоматического режима осуществляется клавишей F1. По англ. этот режим называется «run», или «прогон» программы.

Занесите в программный счетчик нули: (PC)=0000H, и нажав клавишу F1, выполните программу PROBA в автоматическом режиме.

При работе в автоматическом режиме имеется возможность изменять скорость выполнения программы. Это можно делать с помощью клавиши F5. Информация о заданной скорости появляется под надписью SPD (сокращение от англ. SPEED – скорость). Возможны три скорости работы: HI (High) – высокая, MID (Middle) –средняя, LOW – низкая.

Задание 1. Установите низкую скорость работы (LOW) и занесите в программный счетчик нули. Запустите программу в автоматическом режиме. Убедитесь, что повторным нажатием клавиши F1 можно остановить выполнение программы.

Задание 2. Проверьте работу программы при средней скорости (MID).

Как можно отменить выбранную из меню команду?