- •Часть 1
- •Содержание
- •Исследование системы команд микроконтроллеров семейства avr и средств поддержки разработок avr-Studio и WinAvr
- •2.2. Системы поддержки разработок для микроконтроллеров avr
- •2.3. Описание компилятора ассемблера avr
- •3. Создание программ в avr-Studio и WinAvr
- •3.1. Создание простейшей программы и её отладка средствами avr-Studio
- •3.2. Создание простейшей программы и её отладка средствами WinAvr
- •4. Программа исследования
- •5. Содержание отчета
- •1.6. Контрольные вопросы
- •Построение микропроцессорной системы на основе микроконтроллера семейства avr
- •2.2.2. Использование внешнего озу
- •3. Пример построения схемы мпс
- •3.1. Постановка задачи
- •3.2. Организация шины адреса
- •3.3. Организация шины данных
- •3.5. Организация подсистемы впд
- •3.6. Подключение периферийных микросхем (внешних устройств) в адресное пространство внешней памяти
- •4. Программа исследования
- •4.1. Внеаудиторная подготовка
- •4.2. Выполнение работы в лаборатории
- •4.3. Задание на исследование
- •5. Содержание отчета
- •6. Контрольные вопросы
- •Исследование функционирования мпс на примере стенда can128
- •2.2. Запись в и чтение из flash памяти микроконтроллера с помощью ponyprog и макета can128.
- •3. Описание лабораторной установки
- •4. Задание на лабораторную работу
- •5. Содержание отчёта
- •6. Контрольные вопросы
- •Исследование вывода информации на жидкокристаллический индикатор
- •2.2. Способы управления bc1602h
- •3. Описание лабораторной установки
- •3. Задание на исследование
- •4. Содержание отчёта
- •5. Контрольные вопросы
- •Библиографический список
- •Приложение а (обязательное) Варианты индивидуальных заданий на лабораторную работу №1
- •Приложение б (обязательное) Текст учебной программы на ассемблере для лабораторной работы №3
- •Приложение в (справочное) Пример программы для вывода на жки
3. Создание программ в avr-Studio и WinAvr
3.1. Создание простейшей программы и её отладка средствами avr-Studio
Для создания нового проекта нужно создать папку с названием Atmel на диске C (или любую другую, однако при этом необходимо, чтобы полный путь к этой папке и сама папка не содержали русских букв). После запуска AVR-Studio пользователю будет предложено создать новый проект (рисунок 1.1). Если такого предложения не было, то для создания проекта необходимо выбрать меню “Project” и “New”. Появится диалоговое окно, как на рисунке 1.1. В этом диалоговом окне задается имя проекта. Для примера назовём проект First, но это только название проекта. Автоматически заполняется поле Initial file с названием начального файла с текстом программы. Далее выбирается расположение проекта. Это место, где AVR Studio будет сохранять все файлы, связанные с нашим проектом. Будем использовать папку "C:\Atmel". Если папка не существует, AVR Studio автоматически создаст её.
Рисунок 1.1 – Создание нового проекта в AVR-Studio
После нажатия на кнопку Next, появится следующее диалоговое окно (рисунок 1.2). В нём необходимо выбрать параметры отладки. В качестве примера напишем программу для микроконтроллера AT90S8515. В списке Debug platform выберем AVR Simulator, а в списке Devices выберем AT90S8515.
Рисунок 1.2 – Настройка параметров отладки
После нажатия на кнопку Finish откроется рабочая область среды AVR-Studio (рисунок 1.3). Если не появились окна Output и Workspace, то следует открыть их, выбрав соответствующие пункты в меню View.
Рисунок 1.3 – Рабочая область среды AVR-Studio
Докер Workspace имеет три закладки внизу. Выбрав закладку Info, можно получить справочную информацию о выбранном микроконтроллере, например используемые векторы прерываний. Выбрав закладку I/O, можно посмотреть значения регистров ввода/вывода, а также изменить их значения в ходе отладки, можно менять значения и отдельных битов.
Теперь необходимо записать код программы в файл First.asm..
Рассмотрим пример для микроконтроллера AT90CAN128. Введём в
файл First.asm следующий код:
.include "can128def.inc"
.ORG 0x0000
jmp RESET
.ORG 0x0050
RESET:
inc r16
jmp RESET
; End of program
В первой строке программы стоит директива include, которая подключает к нашему проекту файл can128def.inc, содержащий символические имена регистров микроконтроллера AT90CAN128, а также некоторые константы.
По адресу $0000 памяти программ разработчики рекомендуют размещать вектор сброса. После инициализации (сброса) микроконтроллера выполение программы начинается с этого адреса. По этому адресу должна размещаться команда перехода к инициализационной части программы. Начиная с адреса $0001 (модели с памятью программ 8 Кбайт и меньше) или с $0002 (остальные модели) памяти программ размещается таблица векторов прерываний. Размер этой области зависит от модели микроконтроллера (подробнее описано в [1, 2, 3]). Во многих микроконтроллерах AVR положение вектора сброса и/или таблицы векторов прерываний может быть изменено, они могут располагаться и в начале области загрузчика. Если в программе прерывания не используются либо таблица векторов прерываний располагается в области загрузчика, то основная программа может начинаться с адреса непосредственно $0001($0002). В противном случае необходимо при помощи директивы .ORG указывать начальный адрес прикладной программы.
Третья строка вышеприведенного примера содержит инструкцию перехода к подпрограмме обработки сброса или включения. Шестая строка содержит команду увеличения регистра r16 на 1, а пятая строка возврат на предыдущую команду, таким образом, получается бесконечный цикл.
После написания программы, необходимо сохранить результаты, выбрав в меню File пункт Save или нажав соответствующую пиктограмму. После нажатия клавиши F7 или пиктограммы Build программа будет откомпилирована. Если всё проделано правильно, то в папке C:\Atmel должны появиться следующие файлы: first.aps – файл проекта, first.asm – файл с текстом программы, first.hex – файл содержит только образ памяти программ, first.obj – файл с отладочной информацией first.map – файл значений символических имен.
AVR-Studio также позволяет отлаживать написанные программы. Для этого нажмём пиктограмму Start Debugging (рисунок 1.4).
В данном случае программа выполняется пошагово, регистр r16 подсвечен красным, это означает, что его значение изменилось в ходе выполнения предыдущей инструкции. Можно выполнять программу полностью, в пошаговом режиме, минуя блоки функций, или выполняя программу до места, где стоит курсор.
Можно определять неограниченное число точек останова, каждая из которых может быть включена или выключена. Точки останова сохраняются между сессиями работы. Для включения в данном месте программы точки останова требуется щёлкнуть правой кнопкой мыши в данной строке программы и в выпадающем меню выбрать пункт Toggle breakpoint. Кроме того, можно настроить дополнительные параметры программной отладки: частоту осциллятора, тип устройства и подключение внешней памяти, – для этого нужно выбрать пункт AVR Simulator Options в меню Debug.
Рисунок 1.4 – Отладка программы в среде AVR-Studio
