Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mIKROPROTsESSORY / LABMP_ALL_2013.doc
Скачиваний:
75
Добавлен:
09.04.2015
Размер:
2.25 Mб
Скачать

1.4. Порядок отладки программ на Ассемблере с помощью интегрированной среды

  1. Из окна интегрированной среды перейти в режим отладчика, выбрав пункт меню DebugStart/Stop Debug Session или нажав соответствующую кнопку на основной панели инструментов.

2. Окно интегрированной среды изменяется, как показано на рис. 1.6.

3. Желтая стрелка (признак текущего места процесса отладки в исходном файле) устанавливается на первом выполняемом операторе программы.

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

5. Нужно выбрать вид информации, выводимой в окно:

  1. только строки программы на исходном языке (Ассемблере или С) (основная опция),

  2. только Ассемблерная программа с указанием адресов и других параметров операторов (опция “Disassembly Window”),

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

6. Теперь можно начинать отладку. Собственно процесс отладки может проходить в нескольких режимах:

  1. Непрерывный прогон программы с начала и до конца. Для этого надо нажать кнопку Run либо на панели инструментов “Debug”, либо выбрав одноименный пункт из основного меню среды. Остановить непрерывный прогон можно кнопкой Halt, расположенной там же. Этот тип отладки рекомендуется выполнять в самую последнюю очередь, если есть 100%-ная уверенность в правильности работы программы.

  2. Пошаговый прогон программы (рекомендуется), при котором каждый раз при нажатии кнопок StepInto, StepOver, StepOut выполняется один оператор программы и происходит останов. Разница между действиями указанных выше кнопок состоит в том, что при нажатии кнопки StepInto происходит выполнение любого оператора, в том числе и в подпрограммах, при нажатии StepOver происходит выполнение операторов подпрограммы в фоновом режиме (т.е. без отображения на экране), а при нажатии кнопки StepOut, если вы находитесь внутри подпрограммы, происходит ускоренный выход из нее в основную программу в фоновом режиме.

  3. Прогон программы до положения курсора в программе. В этом режиме необходимо прокрутить текст программы до места, где вы хотите остановить прогон и щелкнуть на требуемом операторе мышью, установив на нем курсор. Затем надо нажать кнопку “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. Результатом работы в интегрированной среде будут:

  1. модуль исходного текста программы (с расширением .A51),

  2. файл листинга программы (с расширением .LST и с тем же самым именем).

  3. файл листинга сборки программы (с расширением .M51),

  1. файл шестнадцатеричных кодов программы, который готов для программирования ППЗУ ОЭВМ (с расширением .HEX).

Соседние файлы в папке mIKROPROTsESSORY