IAR + AVR Studio

 
Возьмем для эксперимента проект ring.rar. Он простой и в нем задействовано прерывание.
Открываем его в IARе.
Выбираем конфигурацию Debug.
Задаем настройки проекта  Project > Options  пункт Linker вкладка Output.
Снимаем галочку Override default, если она установлена.
Выбираем радио-кнопку Other, а в выпадающем списке Output Format > ubrof  8(forced)



Кликаем Ок, компилируем проект.
Если все прошло без ошибок, ищите в папке проекта > Debug > Exe файл ring1.dbg

Запускаем AVR Studio.
Откроется Project Wizard. Если не открылся – запускаем его вручную Project > Project Wizard.
Кликаем Open и указываем путь к файлу ring1.dbg.
Студия предложит сохранить файл ring1_dbg.aps в папке проекта. Соглашаемся.
Затем откроется окно выбора отладочной платформы и микроконтроллера – выбираем  AVR Simulator и ATMega8535
Жмем Finish.

Итак, проект открылся и уже запущен режим отладки.



   В центре экрана редактор кода. Желтая стрелка указывает на текущую выполняемую строчку программы. Сейчас она в начале функции main. С правой стороны – внутренности чипа – порты, таймеры, АЦП и т.п. Можно просматривать их значения, а также устанавливать по своему усмотрению.  С левой стороны – вкладка Processor. Вторая вкладка в этом окне – Project. Она отображает структуру проекта.

   Не буду вдаваться в подробности отладки в AVR Studio, остановлюсь только на нескольких моментах.

   Пошаговое выполнение программы происходит при нажатии кнопки F11 (Step Into) . Можно выполнять  программу на си, а можно на ассемблере. По умолчанию открыт сишный файл, ассемблерный открывается через меню View > Disassembler или с помощью иконки Toggle Disassembler Window.

    Step Into

    Toggle Disassembler Window

   Кнопка F5 (Run)  запускает выполнение программы в непрерывном режиме. Это имеет смысл, если в программе расставлены breakpoint`ы (точки остановки). Например, мы хотим проверить выполнение кода в прерывании таймера. Как до него добраться? Ставим курсор в начало прерывания и нажимаем F9 (Toggle breakpoint). Слева от курсора появится красный кружок, это и есть breakpoint. Запускаем программу в непрерывном режиме – F5. Программа будет выполняться до тех пор, пока не произойдет прерывание таймера.  

    Run

  Toggle Breakpoint

  Чтобы убрать breakpoint,  нужно поставить рядом с ним курсор и снова нажать F9. Все breakpoint`ы убираются нажатием на иконку Remove all Program Breakpoints.

  Remove all Program Breakpoints

   Можно запускать выполнение программы до курсора. Ставим курсор в нужное место и нажимаем Ctrl + F10 ( Run to Cursor).

  Run to Cursor 

   Переход в начало программы происходит при нажатии Shift + F5 (Reset).

    Reset

   В процессе отладки часто требуется наблюдать, как меняются значения переменных или регистров. Для этих целей в отладчике AVR Studio есть окно Watch. Чтобы его открыть, выберете View > Watch или кликните по иконке Toggle Watch Windows. Окно Watch представляет собой таблицу из 4-ех колонок: Name, Value, Type, Location. Имя, значение, тип и расположение в памяти соответственно.

  Toggle Watch Windows

   Добавить переменную в таблицу можно двумя способами. Кликнуть левой кнопкой мышки в первом столбце и в открывшеся поле ввести имя переменной.  Или выделить нужную переменную в окне редактора кода, навести на нее курсор и, удерживая левую кнопку мышки, перетащить переменную в окно Watch.  

   Также в AVR Studio есть окна для наблюдения за содержимым памяти (Data, EEPROM, I/O, Program, Register). Открывается в меню View > Memory Window или с помощью иконки Toggle Memory Window.

  Toggle Memory Window



   Наблюдение за ОЗУ может дать информацию о степени использования стека. Здесь есть один момент. Компилятор IAR использует 2 стека – RSTACK и CSTACK.
  RSTACK или return address stack – предназначен для сохранения адресов возврата при вызове функций, прерываний. Указателем стека адресов возврата является специальный регистр SP (Stack Pointer).
  CSTACK или data stack - для сохранения авто переменных в функциях, параметров функций. Указателем стека данных является регистровая пара YH:YL.
  Значения регистров SP и Y отображаются в AVR Studio с левой стороны на вкладке Processor.
  Размеры обоих стеков задаются в IARe  - Options > General Options > System.

   И последнее. Если вы попытаетесь изменить код программы из AVR Studio, у вас ничего не получится. Код программы нужно менять в IARe. Вносим изменения, компилируем проект и переключаемся в студию. Она тут же предложит вам обновить открытые файлы.
Другие материалы в этой категории: « jAVRCalc IAR IDE. Использование шаблонов »

Добавить комментарий

При добавлении в комментарий Си кода, заключайте его между тегами [code] [/code]. Иначе он будет отображаться некорректно.


Защитный код
Обновить