- •Методические указания и задания по лабораторному практикуму по курсу «Микропроцессоры» Учебное пособие Москва 2013
- •Лабораторная работа №1. "Исследование возможностей интегрированной среды для создания программ для микроконтроллеров"
- •1. Краткое описание интегрированной среды
- •1.1. Окно интегрированной среды
- •1.2. Использование отладчика (симулятора) для ассемблерных модулей
- •1.3. Порядок создания программ на Ассемблере с помощью интегрированной среды
- •1.4. Порядок отладки программ на Ассемблере с помощью интегрированной среды
- •1.5. Дополнительные операторы языка Ассемблера для использования интегрированной среды
- •1.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •1.8. Отчет по работе
- •Лабораторная работа №2. "Исследование арифметических и логических операций над двоичными и шестнадцатеричными числами применительно к реализации в микроконтроллерах"
- •1. Логические и арифметические операции
- •2.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •Лабораторная работа №3. "Исследование возможностей интегрированной среды для создания программ для оэвм семейства mcs51"
- •1.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •1.8. Содержание отчета
- •1.9. Задания для самопроверки
- •Лабораторная работа №4 Исследование программно-аппаратного комплекса для отладки программ для оэвм семейства mcs-51
- •4.1. Макетно-отладочная плата ев-552
- •2.3. Порядок создания и проверки программ в интегрированной системе uVision2 - eb552
- •2.3.1. Использование программы ев552.Exe для загрузки нех файлов в плату
- •8. Передача отлаживаемого файла в плату ев552
- •2.4. Задание для домашней подготовки
- •2.5. Лабораторное занятие
- •2.5.1. Основы работы с массивами чисел
- •2.5.2. Отладка программы в интегрированной среде
- •2.6. Результаты отчета
- •2.7. Контрольные вопросы
- •Лабораторная работа № 5 Исследование таймеров-счетчиков и системы прерывания оэвм
- •3.1. Основные теоретические сведения
- •3.1.1. Использование таймера для осуществления программной задержки
- •3.1.2. Система прерываний оэвм
- •3.1.3. Управление работой таймеров
- •Xseg at 0000h
- •3.1.4. Работа таймера в режиме счетчика событий
- •Xseg at 0000h
- •3.2. Задание для домашней подготовки
- •3.3. Лабораторное задание
- •3.3.1. Исследование работы таймеров
- •3.4. Содержимое отчета
- •Список рекомендованной литературы
1.4. Порядок отладки программ на Ассемблере с помощью интегрированной среды
Из окна интегрированной среды перейти в режим отладчика, выбрав пункт меню Debug – Start/Stop Debug Session или нажав соответствующую кнопку на основной панели инструментов.
2. Окно интегрированной среды изменяется, как показано на рис. 1.6.
3. Желтая стрелка (признак текущего места процесса отладки в исходном файле) устанавливается на первом выполняемом операторе программы.
4. Теперь можно начинать сам процесс отладки, т.е. запуска выполнения программы. При этом основная работа будет осуществляться в основном окне исходных модулей (правой части основной области интегрированной среды).
5. Нужно выбрать вид информации, выводимой в окно:
только строки программы на исходном языке (Ассемблере или С) (основная опция),
только Ассемблерная программа с указанием адресов и других параметров операторов (опция “Disassembly Window”),
В случае отладки программ, написанных на Ассемблере, можно применять оба варианта.
6. Теперь можно начинать отладку. Собственно процесс отладки может проходить в нескольких режимах:
Непрерывный прогон программы с начала и до конца. Для этого надо нажать кнопку Run либо на панели инструментов “Debug”, либо выбрав одноименный пункт из основного меню среды. Остановить непрерывный прогон можно кнопкой Halt, расположенной там же. Этот тип отладки рекомендуется выполнять в самую последнюю очередь, если есть 100%-ная уверенность в правильности работы программы.
Пошаговый прогон программы (рекомендуется), при котором каждый раз при нажатии кнопок StepInto, StepOver, StepOut выполняется один оператор программы и происходит останов. Разница между действиями указанных выше кнопок состоит в том, что при нажатии кнопки StepInto происходит выполнение любого оператора, в том числе и в подпрограммах, при нажатии StepOver происходит выполнение операторов подпрограммы в фоновом режиме (т.е. без отображения на экране), а при нажатии кнопки StepOut, если вы находитесь внутри подпрограммы, происходит ускоренный выход из нее в основную программу в фоновом режиме.
Прогон программы до положения курсора в программе. В этом режиме необходимо прокрутить текст программы до места, где вы хотите остановить прогон и щелкнуть на требуемом операторе мышью, установив на нем курсор. Затем надо нажать кнопку “Run to Cursor Line” и начнется непрерывный прогон программы с места, в котором сейчас находится процесс прогона, до места, отмеченного курсором. По достижении места установки курсора процесс останавливается и можно проанализировать результаты.
Как правило, пошаговый прогон необходим в случае анализа простых линейных алгоритмов, а последний режим целесообразно применять в циклических программах, в которых пошаговый процесс может оказаться слишком долгим.
7. Обычно при отладке необходимо следить за изменениями некоторых переменных и регистров. За регистрами можно следить в левой части основного окна среды (вкладка Regs), причем те из регистров, которые меняются при выполнении текущей команды, подсвечиваются зеленым цветом. Корме того, за любой переменной (а не только за регистром) можно следить в окне Watch. Для ввода в это окно имен прослеживаемых переменных необходимо до запуска прогона в окне Watch перейти на вкладку Watch#1 или Watch#2 и в нем щелкнуть мышью на строке “Type F2 to edit” («Нажмите клавишу F2 для редактирования»). Затем нажать клавишу F2 и ввести имя переменной, за которой надо следить в процессе отладки. Справа появится значение этой переменной в начале процесса, и оно будет меняться по мере продвижения процесса по листингу программы.
8. В ряде случаев необходимо в какой-то момент изменить значение прослеживаемой переменной. Для этого в окне Watch#1 или Watch#2 нужно выделить требуемую переменную и нажать опять клавишу F2. Затем надо ввести новое значение переменной (в нотации для языка программирования Си, т.е. 0хХХ, где ХХ – две шестнадцатиричные цифры, или 0хХХХХ для двухбайтных чисел).
9. Иногда по ходу отладки требуется просматривать содержимое памяти контроллера (или внутренней памяти данных, или внешней памяти данных, или памяти команд). Для этого надо открыть специальное окно Memory с помощью одноименной кнопки на панели “Debug”. Открывается отдельное окно с четырьмя отдельными вкладками, в которые можно выводить до четырех фрагментов различных областей памяти. По умолчанию на вкладку Memory#1 выводится содержимое внутренней памяти данных (признак этого типа памяти – буква “d” в начале адреса на каждой строке дампа памяти). В текстовом окне “Address” введите начальный адрес области памяти в нотации Си. Если надо просмотреть содержимое внешней памяти данных, надо перед набором адреса набрать букву «X», затем двоеточие, а затем адрес. Например, X:0x00ff. Для просмотра памяти команд надо вместо “X” в начале адреса набрать букву “C”.
10. По окончании процесса отладки выйти из режима отладки, отжав кнопку Start/Stop Debug Session, и вернуться в среду проектирования.
11. Если отладка дала отрицательный результат (выходные результаты не совпадают с ожидаемыми), нужно найти логическую ошибку и повторить п.п. 1 - 10 до получения правильного результата работы программы.
12. Выйти из интегрированной среды.
13. Результатом работы в интегрированной среде будут:
модуль исходного текста программы (с расширением .A51),
файл листинга программы (с расширением .LST и с тем же самым именем).
файл листинга сборки программы (с расширением .M51),
файл шестнадцатеричных кодов программы, который готов для программирования ППЗУ ОЭВМ (с расширением .HEX).