Отладка проекта при помощи программного симулятора

Для запуска отладчика необходимо выполнить процедуру Build and run, которая вызывается при нажатии на соответствующую кнопку на панели управления. Процедура Build and run выполняется в два этапа. Сперва происходит трансляция входного ассемблерного файла, при которой независимо от установок проекта, кроме выходного файла заданного формата генерируется и объектный файл. Затем этот объектный файл загружается в отладчик.

Для совместимости с прежними версиями в AVR Studio предусмотрен еще один вариант запуска отладчика - загрузка полученного в результате трансляции объектного файла (File -> Open). Но при этом пользователь не имеет возможности редактировать исходный текст программы непосредственно в отладчике. Кроме того следует помнить, что для того, чтобы транслятор сгенерировал необходимый для запуска отладчика объектный файл, нужно в окне установок проекта указать в качестве формата выходного файла транслятора Object.

При первом для проекта запуске отладчика вызывается окно выбора целевого микроконтроллера (рис. 4.6).

Рис. 4.6. Окно выбора целевого микроконтроллера

В этом окне из списка выбирается нужный микроконтроллер (Device), например ATmega103, и тактовая частота процессорного ядра (Frequency). Опции Memory и Architecture при выборе стандартного устройства в окне не используются. Это же окно может быть вызвано в процессе работы отладчика (Options -> Simulator Options).

При выполнении процедуры Build and run (или при загрузке объектного файла) автоматически открывается окно исходного текста исполняемой микроконтроллером программы В окне отображается код, который выполняется в отладочном окружении (эмуляторе или программном симуляторе).

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

Рис. 4.7. Окно исходного текста программы в режиме отладки

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

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что команда Step Over не работает в подпрограммах. С помощью команд пошагового режима можно проследить изменения значений в регистрах устройств ввода/вывода, памяти и регистрового файла. К командам шагового режима относятся также Auto Step и Multi Step. Выбрав в меню Debug пункт Debug Options, можно установить в открывшемся окне параметры режимов Auto Step и Multi Step, а также некоторые другие опции симулятора, речь о которых пойдет ниже.

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

Для установки точки останова в AVR Studio служит пкнкт меню Breakpoints -> Toggle Breakpoint. Точка останова ставится в строке, отмеченной курсором (рис. 4.8).

Рис. 4.8. Точка останова в окне исходного текста программы в режиме отладки

Красная отметка в левом поле окна исходного текста программы показывает установленную точку останова.

В процессе отладки также можно выбрать пункт меню Debug -> Run To Cursor. При выборе этого пункта исполняемый код будет выполняется до достижения команды, обозначенной курсором. При этом, если отладчик обнаруживает точку останова, установленную ранее положения курсора, то останов будет выполнен только в случае его разрешения в окне Debug Option, в противном случае выполнение не приостанавливается. Если команда, обозначенная курсором, не достигается, отладчик продолжает исполнять код программы до тех пор, пока исполнение не будет прервано пользователем. Поскольку режим Run To Cursor зависит от позиции курсора, он доступен только при активном окне исходного текста.

Для остановки исполнения программы пользователем служит команда Break. В состоянии останова эта команда недоступна.

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

Пункт меню Debug -> Reset выполняет сброс микроконтроллера. Если программа при этом выполняется, то ее исполнение будет остановлено. После сброса информация во всех окнах модифицируется.

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

Регистровый файл микроконтроллера AVR отображается в окне Registers (рис. 4.9). Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом, если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных

Рис. 4.9. Окно состояния регистрового файла.

Состояние встроенных периферийных устройств микроконтроллера отображено в окне I/O Window (рис. 4.10)

Рис. 4.10. Окно состояния устройств ввода вывода

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

Рис. 4.11. Развернутый порт PORTB в окне устройств ввода/вывода

Другим способом задания входного воздействия на микроконтроллер в режиме симулятора является использование внешних файлов входных воздействий. Формат файла входного воздействия очень прост:

000000000:00

000000039:01

000000040:00

9999999999:FF

Здесь значение, указанное после разделителя <: > - это шестнадцатеричное представление сигналов, воздействующих на порт микроконтроллера. Значение, указанное до разделителя - это десятичный номер цикла (с момента сброса микроконтроллера), в котором указанное воздействие поступает на выводы порта микроконтроллера. Файл входного воздействия должен заканчиваться строкой с заведомо большим номером цикла, в противном случае будет выдано сообщение об ошибке. Для подключения файла входного воздействия служит пункт меню Options -> Simulator Port Stimuli. В открывшемся окне нужно указать порт микроконтроллера, на который нужно подавать воздействие, и файл этого воздействия. Пользователь может создавать файлы воздействий, записывать изменения значений на выходах портов микроконтроллера в файл (формат этого файла тот же, что и у файла входных воздействий). Для записи служит пункт меню Options -> Simulator Port Logging. В открывшемся окне нужно указать порт микроконтроллера и имя файла для записи. Записываемый файл будет удаляться и создаваться вновь при каждом выполнении сброса микроконтроллера (Debug -> Reset). Подключать файл входного воздействия или задавать имя файла для записи пользователь должен сам при каждом запуске симулятора.

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

Рис. 13. Окно просмотра переменных

Для индикации состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z в процессе отладки программы предназначено окно Processor (рис. 4.13).

Рисунок. 4.13 Состояние процессорного ядра

Для сохранения проекта необходимо воспользоваться пунктом меню Project -> Close. При закрытии проекта сохраняются все его настройки. Во время следующей загрузки настройки будут автоматически восстановлены.

Работая с программным симулятором пакета AVR Studio, следует помнить, что он пока не поддерживает некоторые режимы работы микроконтроллеров AVR и их периферийные узлы:

Аналого-цифровой преобразователь;

Аналоговый компаратор;

Режим часов реального времени;

Режим пониженного электропотребления (инструкция "sleep" интерпретируется программным симулятором как "nop");

Возможно, в последующих версиях AVR Studio поддержка этих узлов и режимов будет реализована.

Как уже говорилось, кроме программного симулятора IDE AVR Studio включает в себя программное обеспечение верхнего уровня для управления аппаратными средствами поддержки разработок. Меню Tools содержит команды запуска управляющих программ. Особенности интерфейса и работы этих программ будут рассмотрены ниже.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: