- •Программирование микроконтроллеров avr на языке ассемблера
- •Рецензенты:
- •Введение
- •1. Архитектура однокристальных микроконтроллеров семейства avr
- •2. Технические характеристики микроконтроллера aTmega32
- •3. Разработка программного обеспечения микроконтроллеров avr
- •3.1. Этапы разработки программного обеспечения однокристальных микроконтроллеров
- •3.2. Правила записи констант и выражений
- •3.3. Программная модель микроконтроллеров avr
- •3.4. Регистр статуса
- •3.5. Команды ассемблера
- •3.6. Директивы ассемблера
- •3.7. Настройка указателя стека
- •3.8. Работа с портами ввода-вывода
- •3.9. Работа с оперативной памятью данных
- •4. Интегрированная среда проектирования
- •4.1. Создание проекта в интегрированной среде проектирования avr studio 4.16
- •4.2. Отладка программы в avr studio 4.16
- •4.3. Загрузка программы в энергонезависимую память программ
- •Заключение
- •Библиографический список
- •Содержание
- •191028, Санкт-Петербург, ул. Моховая, 26
4. Интегрированная среда проектирования
AVR STUDIO 4.16
Для разработки и отладки программного обеспечения однокристальных микроконтроллеров семейства AVR разработаны программно-аппаратные средства проектирования. Ядром этих средств проектирования и отладки является программа AVR STUDIO, которая является системой IDE (Integrated Development Environment – Интегрированная среда проектирования). В данном пособии будет рассмотрена версия – AVR STUDIO 4.16. Совместно с программой AVR STUDIO 4.16 могут использоваться различные программно-аппаратные устройства, в частности эмуляторы и программаторы.
Данная версия программы имеет встроенный редактор для написания текста программы на языке ассемблера, ассемблирования исходного текста (перевода в машинные коды), отладки программы в режиме программной симуляции микроконтроллера или при использовании эмулятора на реальном кристалле. Отлаженную таким образом программу можно загрузить в энергонезависимую память программ микроконтроллера. Память программ микроконтроллера позволяет многократное (не менее 10 000 раз) электрическое стирание и электрическую запись программы. Ниже будет подробно рассмотрена работа с AVR STUDIO 4.16.
В работе с AVR STUDIO 4.16 можно выделить следующие этапы: создание нового проекта, написание текста программы, ассемблирование исходного текста, отладка программы (симуляция и эмуляция) и загрузка программы в кристалл (загрузка программы в энергонезависимую память программ микроконтроллера).
4.1. Создание проекта в интегрированной среде проектирования avr studio 4.16
При запуске AVR STUDIO появляется окно «создание/открытие» проекта (рис. 9) с кнопками «New Project» и «Open». Для создания проекта нажимаем кнопку «New Project» (новый проект).
Рис. 9. Окно создания/открытия проекта
В появившемся окне (рис. 10) требуется выбрать следующие параметры: «Project type» (тип проекта), «Project name» (имя проекта), место расположения создаваемого проекта. Рекомендуется установить флажки «Create initial file» (создание файла) и «Create folder» (создание папки). В этом случае будет создана папка проекта и файл с расширением «.asm» (initial file). В качестве типа проекта следует выбрать «Atmel AVR Assembler». При определении расположения проекта требуется обеспечить путь к папке проекта только из латинских букв. Целесообразно выбрать одинаковые имена папки проекта и файла проекта, состоящие из латинских букв и арабских цифр без пробела.
Рис. 10. Создание нового проекта
После выполнения вышеуказанных действий становятся активными кнопки «Next» и «Finish». Нажимаем «Next». В появившемся окне (рис. 11) требуется выбрать «Debug platform» (платформа отладки) и «Device» (устройство). В качестве платформы выбираем «AVR Simulator» (AVR симулятор). В качестве отлаживаемого устройства может быть выбран любой микроконтроллер AVR из предложенного в окне списка. Предлагается выбрать микроконтроллер AТmega32. После выбора платформы и устройства нажимаем кнопку «Finish». В главном окне программы открывается текстовый файл с расширением «.asm».
Рис. 11. Окно выбора отладочной платформы и микроконтроллера
Для завершения проекта необходимо написать исходный текст программы на языке ассемблер, а затем выполнить его компиляцию, т. е. перевести текст ассемблера в машинный язык. После символа «;» следуют комментарии программиста, которые не воспринимаются компилятором.
Для начала работы с интегрированной средой разработки AVR STUDIO 4.16 предлагается в окне редактора кода набрать текст готовой программы из примера 1 и выполнить его ассемблирование.
Пример 1:
START: wdr ; начало программы
ldi r16, $01 ; загрузить в регистр R16 константу 01H
ldi r17, $00 ; загрузить в регистр R17 константу 00H
mov r17, r16 ; копировать содержимое регистра R16 в регистр R17
rjmp START ; переход на метку
Теперь выполним ассемблирование и запуск программы. На вкладке «Build» выбираем команду «Build and Run». В нижней части программы в окне «Build» должно появиться сообщение
«Assembly complete, 0 errors. 0 warnings».
Данное сообщение означает, что ассемблирование выполнено успешно, ошибок и замечаний нет. Проект создан успешно.
В процессе работы рекомендуется создавать резервную копию тестового файла. Для этого требуется выделить исходный текст программы и сохранить его в любом текстовом редакторе. Сам проект копировать на резервных накопителях не требуется, так как он может быть легко создан заново.
Если в процессе ассемблирования выявлена ошибка в написании команды (ошибка синтаксиса), то компилятор поможет ее найти. Приведем пример 2, в котором намеренно допустим ошибку во второй строке программы (вместо ldi r16, напишем lda r16).
Пример 2:
START: wdr ; начало программы
lda r16, $01 ; загрузить в регистр R16 константу 01H (ошибка)
ldi r17, $00 ; загрузить в регистр R17 константу 00H
mov r17, r16 ; копировать содержимое регистра R16 в регистр R17
jmp START ; переход на метку
В окне Build появится следующее сообщение:
…\Test.asm(2): error: lda: Unknown instruction or macro
…\Test.asm(2): error: syntax error, unexpected ',', expecting ':'
Assembly failed, 2 errors. 0 warnings.
В данном примере появилось две ошибки. Для поиска и устранения ошибок следует в окне «Build» два раза нажать указателем мыши на строку с описанием ошибки, и тогда в исходном тексте программы будет выделена строка с данной ошибкой. После устранения всех ошибок следует снова выполнить ассемблирование.
Теперь откроем папку проекта. Предположим, проект имеет имя «Test». В данной папке находятся файлы, связанные с нашим проектом. Рассмотрим назначение основных файлов:
Test.aps – файл проекта;
Test.asm – исходный текст программы на языке ассемблера;
Test.lst – листинг программы;
Test.obj – объектный файл для отладки программы;
Test.hex – бинарный файл для загрузки программы в память программ.
Рассмотрим назначение этих файлов:
Test.aps – файл проекта, осуществляющий взаимодействие всех файлов;
Test.asm – содержит исходный текст программы на языке ассемблера. Текст программы может быть написан непосредственно в программе AVR STUDIO или в любом текстовом редакторе, а затем через буфер обмена скопирован в программу AVR STUDIO. Текст программы может содержать ошибки синтаксиса.
Test.lst – листинг программы, предназначенный только для программиста. Содержит результат работы программы ассемблер, конкретные адреса и коды команд в шестнадцатеричном коде. В случае ошибки в синтаксисе программы листинг содержит только сообщения об ошибке.
Фрагмент листинга программы «Пример 1»:
000000 95a8
000001 e001 ldi r16, $01 ; Загрузить в регистр R16 константу 01H
000002 e010 ldi r17, $00 ; Загрузить в регистр R17 константу 00H
000003 2f10 mov r17, r16 ; Копировать содержимое R16 в R17
000004 940c 0000 jmp START ; переход на метку
Registers used: 2 out of 35 (5.7%)
Instructions used: 4 out of 114 (3.5%)
Memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x00000c 12 0 12 unknown -
[.dseg] 0x000060 0x000060 0 0 0 unknown -
Assembly complete, 0 errors. 0 warnings