Возьмем для эксперимента проект 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. Вносим изменения, компилируем проект и переключаемся в студию. Она тут же предложит вам обновить открытые файлы.
Comments
It is true?
Выбираем конфигурацию Debug.
Задаем настройки проекта Project > Options пункт Debugger вкладка Setup.
В выпадающем списке Driver выбираем,
например, JTAGICE и отлаживаем себе
не здоровье без AVR Studio.
Настройки по умолчанию (как после создания нового проекта c заготовкой main (без совместимости с AVR Studio 4)
Выложил сюда: http://narod.ru/disk/24381438000/ACDSystems.zip.html лицензии не надо. Попробуйте, не пожалеете.
Вот тут по этому поводу пишут: http://kazus.ru/forums/showthread.php?t=16137
Пробовал, вроде работает.
И большущее спасибо автору этого сайта! (так бы и сидел в CodeVision с его мастером кода, если-бы не прочел Ваши статьи про IAR)
В новой Atmel Studio формат файла изменился на .atsln может с этим связано, что через Open она теперь открывает список программных адресов и данные в них. И как теперь отлаживать?
В меню File есть пункт "Open file for debug" (назание примерное - пишу по памяти).
Could not create project associated with the object file that was opened for debugging.
И не создаёт.
RSS feed for comments to this post