6 Работа в среде avr Studio
В состав среды AVR Studio входит редактор исходных текстов, транслятор с языка ассемблера, отладчик и симулятор.
Транслятор работает с исходными программами на языке ассемблера, содержащими метки, директивы, команды и комментарии.
Метка представляет собой символическое обозначение адреса (последовательность символов, заканчивающаяся двоеточием). Метки используются для указания места в программе, в которое передается управление при переходах, а также для задания имён переменных.
Директивы являются инструкциями для транслятора и не заносятся в исполняемый код программы (список директив приведён в приложении 3). Директивы могут иметь один или несколько параметров.
Команды записываются в программе в виде мнемонического обозначения выполняемой операции и могут иметь один или несколько операндов, т. е. аргументов, с которыми они вызываются. Транслятор позволяет указывать операнды в различных системах счисления: десятичной (по умолчанию, например, 15, 154), шестнадцатеричной (префикс 0х или $, например, 0x0f, $0f, 0x9a, $9a), восьмеричной (префикс – нуль, например, 017, 0232) и двоичной (префикс 0b, например, 0b00001111, 0b10011010). Строка программы должна быть не длиннее 120 символов и может иметь одну из четырёх форм:
[метка:] .директива [параметры] [;Комментарий]
[метка:] команда [операнды] [;Комментарий]
[;Комментарий]
[Пустая строка]
Позиции в квадратных скобках необязательны. Текст после точки с запятой и до конца строки является комментарием и транслятором игнорируется. Включение в текст программы комментариев является признаком хорошего стиля программирования и облегчает её сопровождение. Кроме того, улучшению читаемости также способствует форматирование текста программы. При программировании на ассемблере выполнение этих правил особенно важно, так как программы на языке ассемблера неудобочитаемы.
Указать тип микроконтроллера, для которого транслируется программа, позволяет директива .device, например:
.device ATmega8535;программа для микроконтроллера ATmega8535
При наличии в программе команд, не поддерживаемых указанным в директиве микроконтроллером, транслятор выдаёт соответствующее предупреждение.
Входным для транслятора является файл <имя_файла>.asm с текстом программы на языке ассемблера.
Транслятор создаёт четыре новых файла:
– файл листинга (<имя_файла>.lst),
– объектный файл (<имя_файла>.obj),
– файл-прошивку памяти программ (<имя_файла>.hex),
– файл-прошивку энергонезависимой памяти данных (<имя_файла>.eep).
Файл листинга – это отчёт транслятора о своей работе. На рисунке 6 приведена часть листинга трансляции программы, в которой числа 2, 5 и 19 заносятся соответственно в регистры R17, R18 и R19; вычисляются произведение и сумма содержимого регистров R17 и R18; из суммы содержимого регистров R17 и R18 вычитается содержимое регистра R19. Листинг содержит исходный текст транслируемой программы, каждой команде которой поставлены в соответствие машинные коды (правый столбец чисел) и адреса ячеек памяти программ, в которых они будут размещены (левый столбец чисел). Машинные коды и адреса приводятся в шестнадцатеричной системе счисления. Например, строка листинга с командой ADD содержит следующую информацию: 0f12 – машинный код команды; 000004 – адрес размещения данной команды в памяти программ.
000000 e012 ldi R17,2 ;загрузка числа 2 в регистр R17
000001 e025 ldi R18,5 ;загрузка числа 5 в регистр R18
000002 e133 ldi R19,19 ;загрузка числа 13 в регистр R19
000003 9f12 mul R17,R18 ;умн-е R17 на R18, результат в R1:R0
000004 0f12 add R17,R18 ;сложение R17 и R18, результат в R17
000005 1b31 sub R19,R17 ;вычитание R17 из R19, результат в R19
000006 cfff met: rjmp met ;бесконечный цикл (для отладки)
Рисунок 6 – Пример листинга трансляции
Объектный файл имеет специальный формат и используется для отладки программы с помощью симулятора-отладчика среды AVR Studio.
Файл прошивки памяти программ служит для занесения отлаженной программы в память программ микроконтроллера.
Файл прошивки EEPROM-памяти данных предназначен для загрузки информации в энергонезависимую память данных. Операции загрузки памяти программ и энергонезависимой памяти данных выполняются с помощью специальных аппаратных средств (программаторов).
ЛИТЕРАТУРА
Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. – М.: Эком, 2002. – 400 с.
Виды программ и программных документов: ГОСТ 19.101–77. – Введ. 01.01.80. – М.: 1993. – 6 с. – (Единая система программной документации).
Дианова Р. С. Лабораторные работы по курсу «Микропроцессорные измерительные системы». – М.: Изд-во МАИ, 1995. – 44 с.
Дианова Р. С. Программирование микропроцессорных измерительных систем: Учебное пособие для лабораторных и практических занятий. – М.: Изд-во МАИ, 1993. – 60 с.
Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных устройств автоматики. – М.: Энергоатомиздат, 1987. – 304 с.
Калабеков Б. А. Цифровые устройства и микропроцессорные системы. – М.: Горячая линия – Телеком, 2000. – 336 с.
Королёв Н., Королёв Д. AVR-микроконтроллеры: программные средства// Компоненты и технологии. – 2000. – № 4.
Олссон Г., Пиани Д. Цифровые системы автоматизации и управления. – СПб.: Невский Диалект, 2001. – 557 с.
Микроконтроллеры фирмы Atmel семейства AVR: Справочник. – 2-е изд. – М.: КТЦ-МК, 1999. – 300 с.
Предко М. Руководство по микроконтроллерам: Пер. с англ. В 2-х т.– М.: Постмаркет, 2001 – т. 1 – 416 с., 2001 – т. 2 – 488 с.
Современные микроконтроллеры: архитектура, средства проектирования, примеры применения, ресурсы сети Интернет / Под ред. И. В. Коршуна. – М.: Аким, 1998. – 272 с.
Солонина А. И., Улахович Д. А., Яковлев Л. А. Алгоритмы и процессоры цифровой обработки сигналов. – СПб.: БХВ-Петербург, 2001. – 464 с.
Сташин В. В., Урусов А. В., Мологонцева О. Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. – М.: Энергоатомиздат, 1990. – 224 с.
Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения: ГОСТ 19.701–90. – Введ. 01.01.92. – М.: 1991. – 26 с. – (Единая система программной документации).
Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2001. – 528 с.
Фрунзе А. В. Микроконтроллеры? Это же просто! – М.: ИД Скимен, 2002. – 336 с. (т. 1); 392 с. (т. 2).
ATmega8535 8-bit AVR Microcontroller with 8K bytes In-System Programmable Flash. – San Jose: Atmel Inc., 2003. – 317 p.
Atmel AVR devices//Atmel Applications Journal. – 2003. – № 1.
AVR Microcontrollers Selection Guide. – San Jose: Atmel Inc., 2003.
Fries R. G. Designing with Atmel’s Flash RISC microcontrollers//Embedded System Programming. –1997. – Vol. 10, № 12.
Turley J. Atmel AVR brings RISC to 8-bit world//Microprocessor Report. – 1997. – Vol. 11, № 9.
8-bit AVR Instruction Set. – San Jose: Atmel Inc., 2002. – 149 p.
Егоров А.А., Осипов В.Г., Соловьёв С.Ю. Программирование микро-контроллеров семейства AVR: Учебное пособие к лабораторным работам по дисциплине «Цифровые вычислительные устройства и микропроцессоры приборных комплексов». – М.: Изд. МАИ, 2005. – 77 с.
- 2 Архитектура avr-микроконтроллеров
- 3 Программная модель avr-микроконтроллеров
- 4 Система команд avr-микроконтроллеров
- 5 Программирование микроконтроллеров
- 6 Работа в среде avr Studio
- Информация в сети интернет
- Приложение 1 – Основные характеристики микроконтроллеров групп Tiny avr, Mega avr и lcd avr