Перед запуском программы ее необходима сначала скомпоновать, нажав на кнопку F7, или выбрав в меню Project->Build. или нажав на кнопку панели инструментов. В окне output (рис. 3.9) должно появиться сообщение о том, что компоновка завершилась без ошибок.
Рис. 3.9. Экран AVR Studio в режиме отладки
Для начала отладки нужно нажать на кнопку Start Debugging . При этом появится желтая стрелка (рис. 3.9.), указывающая на команду, которая будет выполнена следующей. Программа находится в режиме пошагового выполнения. Для выполнения следующей команды надо нажать кнопку F10 («Step Over») или F11 («Step Into»). Разница между ними в том, что F10 выполняет всю подпрограмму как одну команду, а F11 «проникает» внутрь нее и выполняет все команды по отдельности.
Пользователь может выполнять программу полностью в пошаговом режиме, трассируя блоки функций, или выполняя программу до того места, где стоит курсор.
С помощью команд пошагового режима можно проследить изменения значений в регистрах устройств ввода/вывода, памяти и регистрового файла. К команде шагового режима относится также Auto Step. Помимо шагового режима, возможна отладка программы с использованием точек останова (Breakpoints). Командой Run в пункте меню Debug запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова. Для установки точки останова в AVR Studio служит пункт меню Debug -> Toggle Breakpoint. Точка останова ставится в строке, отмеченной курсором (рис. 3.10).
Рис. 3.10. Точка останова в окне исходного текста программы
в режиме отладки
Красная отметка в левом поле окна исходного текста программы показывает установленную точку останова.
В процессе отладки также можно выбрать пункт меню Debug -> Run To Cursor. При выборе этого пункта исполняемый код будет выполняется до достижения команды, обозначенной курсором. Если команда, обозначенная курсором, не достигается, отладчик продолжает исполнять код программы до тех пор, пока исполнение не будет прервано пользователем. Поскольку режим Run To Cursor зависит от позиции курсора, он доступен только при активном окне исходного текста. Для остановки исполнения программы пользователем служит команда Stop Debugging в меню Debug. В состоянии останова эта команда недоступна. Пункт меню Debug -> Reset выполняет сброс микроконтроллера. Если программа при этом выполняется, то ее исполнение будет остановлено. После сброса информация во всех окнах модифицируется. Для наблюдения за работой программы можно открыть несколько окон, отображающих состояние различных узлов микроконтроллера. Окна открываются нажатием соответствующих кнопок на панели инструментов или при выборе соответствующего пункта меню View.
Регистровый файл микроконтроллера AVR отображается в окне Registers (рис. 3.11). Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом, если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных
Рис. 3.11. Окно состояния регистрового файла
Состояние встроенных периферийных устройств микроконтроллера отображено в окне Workspace в кладке I/O (рис. 3.12)
Рис. 3.12. Окно состояния устройств ввода-вывода
В этом окне отражаются все функциональные блоки микроконтроллера. Любой блок может быть раскрыт нажатием на его значок. При раскрытии блока в окне отражаются адреса и состояния всех его регистров и отдельных, доступных для модификации, битов (рис. 3.13).
Каждый доступный для модификации бит может быть установлен или сброшен как программой по ходу ее исполнения, так и пользователем вручную (указав курсором мыши нужный бит и щелкнув левой кнопкой мыши пользователь может изменить значение бита на обратное) - в режиме программной симуляции это является способом имитации входного воздействия на микроконтроллер.
Рис. 3.13. Развернутый порт PORTВ в окне устройств
ввода/вывода
Для индикации состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z в процессе отладки программы можно в окне Workspace нажать на вкладку Processor (рис. 3.14).
Рис. 3.14. Состояния
процессорного ядра
В этом же окне отображается текущее время выполнения программы и тактовая частота ядра микроконтроллера.
Просмотр ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения программы возможно также с помощью диалогового окна Memory. Падающее меню диалогового окна позволяет выбрать один из пяти массивов ячеек памяти: Data, IO, Eeprom, Program Memory, Register. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII - символов (рис. 3.15).
Рис. 3.15. Окно просмотра
содержимого памяти
Для внесения изменений в программу в процессе отладки необходимо редактировать её исходный текст. При попытке запуска симулятора на исполнение программы после редактирования на экране появляется окно, сообщающее об изменении программы и необходимости её компиляции. Для сохранения проекта необходимо воспользоваться пунктом меню Project -> Close. При закрытии проекта сохраняются все его настройки. Во время следующей загрузки настройки будут автоматически восстановлены.