Программирование микропроцессорных систем
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
?ожет поставить против любой строки программы.
Затем программа запускается под управлением отладчика. Но это - не реальная работа. Это лишь имитация работы микроконтроллера. Программа выполняется строка за строкой, пока в очередной строке не встретится точка останова. Обнаружив такую точку, отладчик приостанавливает выполнение программы.
Выглядит это таким образом, как-будто за один шаг вы выполнили большой кусок программы. Теперь вы можете снова просмотреть и (или) изменить содержимое любого регистра. А затем продолжить отладку. Причем, вы можете продолжить ее как в пошаговом режиме, так и запустить программу в режиме автоматического выполнения до следующей точки останова.
Для управления точками останова программа имеет несколько встроенных директив, которые показаны в таблице 2.
Таблица 2.
Директивы управления точками останова
Для того, чтобы поставить точку останова в какой-либо строке программы, нужно сначала поместить в эту строку текстовый курсор. Затем выбрать директиву Поставить точку останова (см. табл. 2). Точка останова выглядит как коричневый кружочек напротив выбранной строки программы на левой границе текстового окна.
Если поместить курсор в строку, где уже есть точка останова, и выполнить еще раз директиву Поставить точку останова, то точка убирается. Убрать сразу все поставленные точки останова можно при помощи директивы Убрать все точки останова.
Второй способ простановки точек останова - задание их через меню. Предназначенный для этого пункт New Breakpoints меню Debug имеет два подпункта. При помощи подпункта Program Breakpoint можно устанавливать программные точки останова. То есть точно такие, какие мы ставили предыдущим способом.
Отличие способа постановки точек через меню в том, что их местоположение в программе вы определяете путем заполнения полей в специальной форме. В этой форме, кроме номера строки или адреса программы, где вы хотите поставить точку останова, вы можете указать количество проходов.
Для этого вам необходимо заполнить поле Break execution after: - hits (Остановить выполнение после: - проходов). Если число в этом поле не равно нулю, то программа остановится в данной точке останова не с первого раза, а лишь тогда, когда пройдет через нее указанное количество раз.
Если вы установили вашу точку останова не через меню, а напрямую в тексте программы, вы все равно можете вызвать описанный выше диалог и изменить в нем количество проходов, щелкнув мышью по строке с описанием нужной точки останова во вкладке Breakpoints and Tracepoints.
При помощи подпункта Data Breakpoint пункта New Breakpoints меню Debug можно задавать точки останова по данным. При выборе этого пункта меню открывается диалог, в котором вы можете выбрать любую из переменных вашей программы или любой ресурс микроконтроллера (из открывающегося списка) и поставить точку останова по обращению к этой переменной (ресурсу).
Программа позволяет выбрать целый ряд условий, при которых наступит останов программы. По умолчанию останов происходит при любом обращении к этой переменной как в режиме чтения, так и в режиме записи. Вы можете выбрать другое условие. Например, при равенстве переменной определенному значению. Выбор условия производится при помощи поля Break when: (Остановиться если:) и поля Access type (Тип доступа). Имя переменной выбирается при помощи поля Location.
Диалог простановки точек останова обоих видов можно вызывать не только через меню. В верхней левой части вкладки Breakpoints and Tracepoints для этого имеется специальная кнопка.
После того, как вы проставили все точки останова, вы можете запускать программу в режиме автоматического выполнения. Для управления отладчиком в этом режиме программа AVR Studio также имеет несколько специальных директив (см. табл. 3). Запуск автоматического выполнения программы производится при помощи директивы Пуск.
Пока программа находится в режиме автоматического выполнения, новое состояние регистров не отображается. Указатель текущей команды также отсутствует. В нижней строке главной панели программы в правой ее стороне находится индикатор состояния. В режиме останова это желтый кружочек с минусом посередине. Слева от него находится слово Stopped (Остановлено). В режиме автоматического выполнения программы желтый кружочек превращается в зеленый с плюсом внутри. Вместо слова Stopped появляется слово Running (Запущено).
Если вы неправильно поставили точку останови либо и вовсе забыли ее поставить, программа будет находиться в режиме автоматического выполнения бесконечно долго. Для досрочной остановки программы используется директива Остановить. Если в процессе отладки программы понадобится начать все сначала (сымитировать сброс микроконтроллера), это можно сделать при помощи директивы Сброс. По окончании отладки программы необходимо перейти в режим редактирования. Для этого служит директива Закончить отладку.
Таблица 3.
Просмотр и изменение содержимого введенных переменных
Для оперативного просмотра и изменения содержимого введенных вами переменных в процессе отладки можно открыть специальное окно. Для этого достаточно выбрать пункт Watch в меню View. Окно имеет четыре вкладки. Поэтому можно иметь четыре разных набора переменных.
Для того чтобы включить какую-либо переменную в текущее окно Watch, необходи?/p>