Найти в Дзене
Zak MIR

Основы программы AVR Studio

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

П.1. Общие понятия о средствах разработки и отладки ПО для микропроцессорных систем.

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

Программа-транслятор, переводящая исходную программу, написанную на языке ассемблера, называется ассемблером. Программа-транслятор, переводящая исходную программу, написанную на языке высокого уровня, называется компилятором или интерпритатором . Компилятор транслирует исходную программу целиком и формирует исполняемый код объектной программы, а интерпритатор поочередно команду за командой в процессе ее выполнения. Программы-трансляторы относятся к так называемым системным программам , предназначенным для облегчения подготовки и отладки разрабатываемых программ.

Если ассемблер или компилятор реализуются на той же ЭВМ, для которой ими вырабатывается объектная программа, то они называются резидентным ассемблером и резидентным компилятором соответственно. Если ассемблер или компилятор реализуются на ЭВМ другого типа, то они называются кроссассемблером и кросс-компилятором соответственно. Та ЭВМ, для которой кросс-ассемблер или кросс-компилятор создает объектные программы, называется целевой ЭВМ .

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

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

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

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

Различают два способа отладки программ: пошаговый режим и трассировка программ.

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

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

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

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

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

П.2. Интегрированная система программирования AVR Studio

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

При программировании в среде AVR Studio надо выполнить стандартную последовательность действий:

• создание проекта

• создание файла программы

• компиляция

• симуляция

• загрузка hex-кода в микроконтроллер

Создание проекта начинается с выбора строки меню Project/New Project. В открывшемся окне «Create new Project» надо указать имя проекта, (например, – LS2), имя файла программы ls2.asm появится автоматически (рис.38). В строке Location выбираем папку для сохранения проектов.

Рис.38. Вид окна создания проекта
Рис.38. Вид окна создания проекта

После нажатия кнопки «Next» открывается окно «Select debug platform and device», где выбирается отладочная платформа (симулятор или эмулятор) и тип микроконтроллера (рис.39).

Рис.39. Вид окна выбора отладочной платформы и модели микроконтроллера
Рис.39. Вид окна выбора отладочной платформы и модели микроконтроллера

Выбираем в качестве отладочной платформы AVR Simulator и микроконтроллер ATmega128. После нажатия кнопки “Finish” переходим в рабочее окно программы (рис.40).

Рис.40. Вид рабочего окна AVR-studio
Рис.40. Вид рабочего окна AVR-studio

В правом окне вводим исходный текст программы:

.device Atmega128

.include “m128def.inc”

;вывод светодиода подключен к линии PE7

;инициализация стека

ldi r16,High(RAMEND) out SPH,r16 ;устанавливаем указатель стека ldi r16,Low(RAMEND) ;на конечный адрес ОЗУ контроллера

out SPL,r16 ;настройка линии светодиода на выход

ldi r16,(1<<PE7) ;устанавливаем бит PE7 порта DDRE в 1

out DDRE,r16 ;

Основная программа main:

cbi PORTE,PE7 ;

записав в бит PE7 порта PORTE 0 включаем светодиод rjmp main

Этот пример включает светодиод в лабораторном стенде.

Компиляция проекта производится командой Project/Build. Процесс компиляции отображается в окне Output в нижней части экрана (рис.41).

Рис.41. Окно сообщений компилятора
Рис.41. Окно сообщений компилятора

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

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

Переход в режим симуляции производится командой Debug/Start Debugging. В результате попадаем в окно симулятора (рис.42).

Рис.42. Окно симуляции проекта
Рис.42. Окно симуляции проекта

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

В правом окне появляется желтая стрелка, указывающая на следующую исполняемую команду. По команде Debug/Step Intro(F11) выполняется команда, на которую указывает стрелка. Выполняя пошагово команды можно наблюдать в левом окне изменение содержимого задействованных регистров и портов и находить ошибки в программе.

Запись программы в микроконтроллер производится программой AVRProg, вызываемой командой Tools/AVRProg (рис.43).

После вызова программы AVR Prog кнопкой Browse находим и открываем нужный файл прошивки. Кнопкой Program секции Flash загружаем наш файл во Flash-память микроконтроллера. После успешной записи микроконтроллер начинает выполнять записанную программу.

Рис.43. Окно утилиты программирования МК.
Рис.43. Окно утилиты программирования МК.

П.3. Обзор редактора ISISProteus

Для запуска редактора электронных схем следует открыть исполняемый файл ISIS 7 Professional. Наибольший участок экрана называется окном редактирования (рис 44), это окно предназначено для черчения (здесь размещаются и соединяются элементы схемы). Наименьший участок в левом верхнем углу экрана называется окном краткого обзора. Обычно окно предпросмотра используют, как и предполагает его название, для краткого обзора полного рисунка. Над окном редактирования расположена панель инструментов и панель меню.

Рис. 44 Окно редактирования ISIS
Рис. 44 Окно редактирования ISIS

Есть несколько способов увеличить или уменьшить участок схемы:

• Навести мышь на место, которое нужно увеличить или уменьшить, и покрутить ролик мыши вперед, чтобы увеличить масштаб, или назад, чтобы уменьшить.

• Навести мышь на место, которое нужно увеличить или уменьшить, и нажать клавишу F6 или F7 соответственно.

Ниже окна краткого обзора находится переключатель объектов (рис 45) который используется для выбора приборов, символов и других объектов библиотек.

Рис. 45. Переключатель объектов
Рис. 45. Переключатель объектов

Рис. 45. Переключатель объектов

ISIS разработан так, чтобы быть удобным в использовании насколько это возможно, и двумя способами помогает видеть то, что происходит в процессе проектирования – объекты окружаются пунктирной линией (или «подёргиваются»), когда на них наводят курсор мыши, и курсоры мыши изменятся согласно функции. По существу, подёргивание говорит, над каким объектом находится курсор мыши («горячий» объект), а курсор мыши показывает, что случится, если кликнуть левой кнопкой мыши на этом объекте.

Первая вещь, которую нужно сделать для создания схемы, это получить элементы из библиотек, необходимые для рисования схемы.

Выбрать элементы из библиотек можно одним из двух способов:

• Нажать на кнопку P в верхнем левом углу переключателя объектов. Можно также использовать вызов Браузера библиотек (BrowseLibrary) нажатием горячей клавиши (по умолчанию это клавиша P на клавиатуре).

• Кликнуть правой кнопкой мыши на пустом участке схемы и выбрать: Разместить – Элемент – Из Библиотеки (Place – Component – FromLibraries) в появившемся контекстном меню, как показано ниже (рис 46).

Рис. 46. Выбор элементов через контекстное меню.
Рис. 46. Выбор элементов через контекстное меню.

Любой из этих двух способов заставит появиться диалоговое окно Браузера библиотек (рис 47). Следующий этап – найти в библиотеках необходимые элементы. Элементы в библиотеке можно искать множеством способов. В случае, когда известно название элемента, лучший способ – искать по нему. Для этого нужно ввести название элемента, например, Atmega128 в поле Ключевые слова (Keywords). Наконец, нужно дважды кликнут на строке в списке результатов, чтобы выбрать элемент «ATmega128» в проект. Тогда элемент появится в переключателе объектов.

Рис. 47. Браузер библиотек
Рис. 47. Браузер библиотек

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

Теперь осталось переместить указатель мыши в середину окна редактирования и нажать левую кнопку мыши. Контур микроконтроллера появится под указателем мышью и будет следовать за ним, при перемещении по окну редактирования. По нажатию на левую кнопку, элемент будет помещен на схему и прорисуется полностью (рис 48).

Рис. 48. Пример расположения компонентов
Рис. 48. Пример расположения компонентов

Для соединения элементов нужно навести курсор на верхний вывод элемента (в данном случае - светодиод). Когда курсор мыши изменился, нужно кликнуть левой кнопкой мыши на выводе элемента, чтобы начать размещение проводника. ISIS автоматически определяет, что курсор наведен на вывод элемента. Курсор мыши изменяется на бесцветный карандаш, показывая, что происходит разводка, и предполагаемый путь проводника будет тогда следовать за движением мыши. Теперь, чтобы соединить элемент с нужным выводом другого элемента(вывод PE7 микроконтроллера), осталось навести курсор мыши на этот вывод(карандаш вновь стал зеленым) и нажать на левую кнопку мыши. Чтобы схема функционировала, следует заземлить оставшийся вывод светодиода. Для этого нужно нажать правой кнопкой мыши на свободном месте окна редактирования и выбрать Place-Terminal-Ground, после чего разместить заземление и соединить проводником. Законченный вид соединения элементов схемы представлен на рисунке 49.

Рис. 49. Пример соединения элементов схемы
Рис. 49. Пример соединения элементов схемы

Рис. 50. Окно свойств компонента
Рис. 50. Окно свойств компонента

В качестве примера для симуляции используем ту же программу, которую рассматривали при симуляции проекта в AVR-Studio. Данная программа включает светодиод D1, подключенный к выводу микроконтроллера PE7(рис

51).

Рис. 51. Симуляция собранной схемы
Рис. 51. Симуляция собранной схемы