Поделиться Поделиться

Изучение системы команд микроконтроллеров семейства AVR

Цель работы: Получение навыков работы с отладчиком AVR Studio 4 и изучение основ программирования микроконтроллеров

Установка и запуск AVR Studio. Установка данного пакета производиться по самой простой и традиционной схеме. Щелкните на установочный файл aStudio4b460 и нажимайте <next> пока не появится надпись «Finish».

После этого в меню пуск появится наименование пакета Atmel AVR tools [AVR Studio 4

Запуск AVR Studio производится посредством последовательной нажатии на Atmel AVR tools [AVR Studio 4.

После запуска AVR Studio 4 предлагает создать или открыть созданный раннее проект. Для создания нового проекта необходимо нажать на Сreate New Project (рис.3.3). В результате на экране появляется диалоговое окно (рис.3.4), в котором необходимо ввести название проекта (Project name), имя с расширением .asm файла и его расположение (Location). Опция Сreate Initial File позволяет создавать файл инициализации, а Сreate Folder создает отдельную папке для каждого проекта с его именем.

Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 1

Рис. 3.3. Окно создания нового проекта

Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 2

Рис. 3.4. Окно указания имени и местонахождения проекта

Далее, при нажатии кнопки Next появляется окно (рис. 3.5), где необходимо выбрать платформу отладки и устройство (Select debug platform and device)

Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 3

Рис. 3.5. Окно выбора платформы отладки и устройства (МК)

В данном случае указываем в качестве платформы ARV Simulator, выбираем то или иное устройство, к примеру, ATmega8535.Ппосле нажатия кнопки Finish на экране появиться окно организации проекта (рис. 3.6), показывающее все рабочие окна проекта и готовое для ввода и отладки программы.

Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 4

Рис. 3.6 Окно редактирования программы на языке Ассемблер

Для демонстрации процесса отладки введем следующую программу:

.include "m8535def.inc" ldi r16,low(RAMEND) out SPL,r16 ldi r16,high(RAMEND) out SPH,r16 ser r16 out DDRB,r16 pp: out PORTB,r16 inc r16 rjmp ppПрограмма представляет собой простой счетчик, реализованный на регистре r16, значение которого в цикле увеличивается и выводится в порт В. Директива .include включает в начало программы файл m8535def.inc. Щелкнув правой кнопкой мыши по строчке .include "m8535def.inc" и выбрав в раскрывшемся меню поле Open Document: m8535def.inc можно посмотреть содержимое файла m8535def.inc. В нем содержатся объявления констант для удобного обращения к регистрам и отдельным битам по именам, вместо номеров. При трансляции программы имена регистров заменяются на их адреса, например, команда out PORTB, r16 заменяется на out $18, r16. Далее происходит инициализация стека. Инициализация стека нужна для правильной работы подпрограмм и прерываний. RAMEND – это константа определенная в файле m8535def.inc, равная адресу конца памяти SRAM. Это значение лучше всего подходит для установки адреса указателя стека. Директива low извлекает младший байт адреса RAMEND и он сохраняется в регистре SPL, а с помощью директивы high старший байт RAMEND сохраняется в регистре SPH. Команда ser r16 устанавливает в единицы все разряды регистра r16, который затем загружается в порт DDRB, задавая режим работы всех разрядов порта В на вывод. Команда out PORTB,r16 производит запись содержимого регистра (значение счетчика) r16 в порт. Далее происходит наращивание значения счетчика (регистра r16) на единицу в каждом цикле (inc r16). После выполнения командыбезусловного перехода rjm pp, программа переходит на метку рр и цикл повторяется.Рабочее окно Workspace позволяет видеть все связанные с проектом файлы. Слева находится само рабочее поле, где и пишется программа на языке ассемблер. Перед трансляцией нужно задать установки проекта. В пункте меню Project выбираем Assembler Options, и в открывшемся окне установок проекта указываем необходимый формат выходного файла. AVR Studio поддерживает следующие выходные форматы:

· Intel Intellec 8/MDS (Intel Hex)

· Motorola S-Record

· Generic

Большинство программаторов в качестве входных используют файлы в формате Intel Hex, выбираем его. В опции AVR Assembler указывается версия ассемблера (по умолчанию Version 2). В пунктах Additional include path и Additional Parameters указываются дополнительные пути для вложения файлов и дополнительные параметры. После того как произведены установки проекта, приступаем к написанию программы, ее дальнейшей трансляции и проверке правильности её написания. Output это окносообщений ассемблера, в которое выводится информация о количестве слов кода и данных, о наличии ошибок и другая информация (рис. 3.7).

Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 5

Рис. 3.7 Вид окно сообщений ассемблера

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

 
  Изучение системы команд микроконтроллеров семейства AVR - Инвестирование - 6

Рис. 3.8. Вид окна сообщений ассемблера при наличии ошибки

В результате трансляции создается выходной файл в указанном формате. Если исходный ассемблерный текст содержал сегмент энергонезависимых данных (объявленный директивой .eseg), то при трансляции будет создан также файл с расширением .eep. Этот файл содержит данные для внутренней EEPROM микроконтроллера и имеет тот же формат, что и выходной файл. Если в результате трансляции не выдается сообщений об ошибках, можно приступать к отладке проекта.

Режимы работы отладчика

Как уже говорилось, AVR Studio 4 позволяет производить отладку приложений с использованием встроенного программного симулятора или внешнего внутрисхемного эмулятора. Когда пользователь запускает AVR Studio 4, программа проверяет наличие эмулятора на одном из последовательных портов компьютера. Если эмулятор найден, то выбирается как базовая система отладки. Если эмулятор не найден, то отладка будет выполняться на встроенном программном симуляторе AVR. Внутрисхемный эмулятор позволяет производить отладку приложения на реальной целевой плате. Следует помнить, что в режиме реального времени эмулятор работает существенно быстрее, чем программный симулятор.

Отметим еще раз, что независимо от режима работы отладчика, интерфейс AVR Studio 4 не меняется. При переключении между различными режимами отладки все параметры среды сохраняются. Информация о текущем режиме отладчика выводится в строке состояния AVR Studio 4.

← Предыдущая страница | Следующая страница →