Avr studio для чего эта программа

Разработка программ в IDE AVR Studio

В поддержку своей архитектуры в 1997 г. Atmel выпустила AVR Studio — программный продукт для разработки приложений на основе AVR-микроконтроллеров. AVR Studio представляет собой интегрированную среду разработки IDE (Integrate Development Environment), объединяя в себе большое количество различных инструментов для написания и отладки программ.

Продвигая на рынке новую продукцию, Atmel с самого начала попыталась сделать ее максимально открытой для потребителя. AVR Studio не является исключением. Последняя версия IDE, равно как и любая информация по AVR-микроконтроллерам, всегда свободно доступна на сайтах производителя. Минимальный набор разработчика в IDE представлен фирменным ассемблером и симулятором.

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

Atmel Studio

Принцип работы ассемблера

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

Каждая инструкция ассемблера представляет собой символическое изображение соответствующей машинной команды со своим кодом операции (КОП). Команды ассемблера имеют удобочитаемый вид и названия, ассоциирующиеся с их действием. Так команда пересылки между двумя РОНами mov Rd,Rr является прототипом 16-разрядного кода операции 0010 11rd dddd rrrr.

Битовые поля ddddd и rrrrr в нем определяют адреса регистров приемника и источника соответственно. Например, для пересылки регистра R5 в R22 необходимо записать на ассемблере mov R22,R5 или 0010 1101 0110 0101 на машинном языке. Разница в восприятии очевидна. Каждую команду ассемблера можно логически разделить на две части: мнемонику и операнды.
Мнемоника Операнд 1 Операнд 2
mov Rd, Rr Мнемоника является обязательной частью команды и определяет ее функциональное назначение. Операнды представляют собой параметры команды. В качестве операндов могут выступать числовые значения, адреса и смещения относительно адресов. Команды AVR, в зависимости от назначения, могут иметь до двух параметров.

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

Если программа использует инициализированные данные, размещенные в энергонезависимой памяти, то в дополнении к этому, будет сгенерирован также файл для EEPROM. Информация, размещенная в этих файлах, используется программатором при программировании FLASH-память программ и/или EEPROM-память данных.

Работа с программой AVR Studio

Существует большое количество различных форматов выходных файлов, но самый распространенный из них 16-тиричный Intel Hex Format. Файлы такого типа, как правило, имеют два различных расширения: .hex у файлов содержащих коды программ, и .epp у файлов, содержащих данные для записи EEPROM-памяти. В соответствии со своей технологией работы, компилятор создает также объектный файл с расширением .obj.

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

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

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0

Вознаградить Я собрал 0 0

Источник: cxem.net

AVR: программирование в среде AVR Studio

Для программирования AVR-микроконтроллеров существует немало средств разработки, однако, наиболее популярным, несомненно, следует признать пакет AVR Studio.

Для программирования AVR-микроконтроллеров существует немало средств разработки, однако, наиболее популярным, несомненно, следует признать пакет AVR Studio. Есть ряд причин такой популярности – это бесплатный пакет, разработанный фирмой ATMEL, он объединяет в себе текстовый редактор, ассемблер и симулятор. Пакет AVR Studio также используется совместно с аппаратными средствами отладки. В предлагаемой статье на примерах рассматриваются приемы работы с пакетом, что поможет начинающим программистам быстрее понять взаимодействие отдельных компонентов AVR Studio.

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

Пакет AVR Studio имеет солидную историю развития, что отражается в количестве существующих версий. В конце 2003 г. выпущена версия 4.08, которая имеет ряд полезных дополнений, а в начале 2004 г. вышло обновление (Service Pack 1), добавляющее поддержку AVR-контроллеров третьего поколения семейства ATmega48. Производство микросхем этого семейства намечено на вторую половину 2004 г.

Дистрибутив пакета и Service Pack можно загрузить с сайта www.atmel.com или получить компакт-диск с этим дистрибутивом у российского дистрибьютора фирмы ATMEL.

Работу пакета AVR Studio удобно рассматривать на какой-либо конкретной программе. В качестве илюстрации мы рассмотрим создание проекта для простейшей программы, которая будет по очереди зажигать два светодиода. Для определенности возьмем микросхему Atmega128 и подключим два светодиода в выводам 31 и 32 (это биты 6 и 7 порта D микросхемы ATmega128).

AVR-контроллеры имеют мощные выходные каскады, типовой ток каждого вывода составляет 20 мА, максимальный ток вывода – 40 мА, причем это относится как к втекающему, так и к вытекающему току. В нашем примере светодиоды подключены анодами к выводам контроллера, а катоды через гасящие резисторы соединены с землей. Это означает, что светодиод зажигается подачей «1» на соответствующий вывод порта. Принципиальная схема приведена на рисунке. На схеме также показаны две кнопки, которые будут использованы в одной из программ.

Здесь уместно сделать небольшое отступление о выборе типа микросхемы для простейшего примера. Действительно, с первого взгляда может показаться странным, зачем нужен такой мощный кристалл в 64-выводном корпусе там, где хватит и 8-выводной микросхемы ATtiny12? Однако, в таком подходе есть логика. Известно, что в основе практически любого AVR-контроллера лежит одинаковое ядро.

По большому счету, контроллеры различаются объемом памяти, количеством портов ввода/вывода и набором периферийных модулей. Особенности каждого конкретного контроллера – привязка логических имен регистров ввода/вывода к физическим адресам, адреса векторов прерываний, определения битов портов и т.д. описаны в файлах с расширением .inc, которые входят в состав пакета AVR Studio.

Следовательно, используя конкретный тип кристалла, можно отлаживать программу как собственно для него, так и для любого младшего кристалла. Далее, если использовать в качестве отладочного самый старший кристалл, на сегодня это ATmega128, можно отлаживать программу практически для любого AVR-контроллера, надо просто не использовать аппаратные ресурсы, которые отсутствуют у целевого микроконтроллера.

Таким образом, например, можно отлаживать на ATmega128 программу, которая будет выполняться на ATtiny13. При этом исходный код останется практически тем же, изменится лишь имя подключаемого файла с 128def.inc на tn13def.inc. У такого подхода также есть свои преимущества.

Например, «лишние» порты ввода/вывода можно использовать для подключения ЖК-индикатора, на который можно выводить отладочную информацию. Или, воспользоваться внутрисхемным эмулятором, который подключается к JTAG-порту микросхемы ATmega128 (контроллер ATtiny13 такой порт не имеет).

Таким образом, можно использовать единственную отладочную плату, на которой установлен «старший» AVR-контроллер, для отладки любых вновь разрабатываемых систем, естественно, базирующихся также на AVR-микроконтроллерах. Одна из таких плат называется AS-megaM. Именно она использовалась для создания примеров программ, приводимых в статье.

Это универсальный одноплатный контроллер на базе микросхемы ATmega128, который содержит внешнее ОЗУ, два порта RS-232, порт для подключения ЖК-индикатора, внутрисхемного программатора и эмулятора AT JTAG ICE. На плате также есть место для распайки микросхемы FLASH-ПЗУ серии АТ45 в корпусах TSOP32/40/48 и двухканального ЦАП серии AD5302/ AD5312/ AD5322. Теперь, после объяснения причин использования AVR-монстра для зажигания пары сватодиодов, можно идти дальше.

Читайте также:
Что за программа зуне

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

  • создание проекта
  • загрузка файла
  • компиляция
  • симуляция
  • загрузка hex-кода в микроконтроллер

Создание проекта начинается с выбора строки меню ProjectNew Project. В открывшемся окне “Create new Project” надо указать имя проекта, (в нашем случае – sample1) и имя файла инициализации. После нажатия кнопки “Next” открывается окно “Select debug platform and device”, где выбирается отладочная платформа (симулятор или эмулятор) и тип микроконтроллера.

Можно выбрать один из предлагаемых внутрисхемных эмуляторов, заметим, что у каждого эмулятора свой список поддерживаемых микросхем . Для рассматриваемого примера мы выбираем в качестве отладочной платформы AVR Simulator и микросхему ATmega128. После нажатия кнопки “Finish” нашему взору предстают собственно рабочие окна пакета AVR Studio, пока пустые. Следует в правое окно поместить исходный текст программы. Это можно сделать двумя способами, либо набрать весь текст непосредственно в окне редактора, либо загрузить уже существующий файл. Ниже приведен полный текст простейшей программы с комментариями.

; Пример «Управление светодиодами» ; написан для отладочной платы AS-MegaM ; Частота задающего генератора 7,37 МГц ; светодиоды подключены к выводам PD6 и PD7 и через резисторы — на общий провод. ; подключение файла описания ввода-вывода микросхемы ATmega128 .include «m128def.inc» ; начало программы begin: ; первая операция — инициализация стека ; если этого не сделать, то вызов подпрограммы или прерывания ; не вернет управление обратно ; указатель на конец стека устанавливается на последний адрес внутреннего ОЗУ — RAMEND ldi r16,low(RAMEND) out spl,r16 ldi r16,high(RAMEND) out sph,r16 ; для того, чтобы управлять светодиодами, подключенными к выводам PD6 и PD7, ; необходимо объявить эти выводы выходными. ; для этого нужно записать «1» в соответствующие биты регистра DDRD (DataDiRection) ldi r16,(1<<6) | (1<<7) out DDRD,r16 ; основной цикл программы loop: ldi r16,(1<<6) ; светится один светодиод out PORTD,r16 rcall delay ; задержка ldi r16,(1<<7) ; светится второй светодиод out PORTD,r16 rcall delay ; задержка rjmp loop ; повторение цикла ; процедура задержки ; примерно полсекунды при частоте 7,37 МГц ; три пустых вложенных цикла соответственно delay: ldi r16,30 ; 30 delay1: ldi r17,200 ; 200 delay2: ldi r18,200 ; и еще 200 итераций delay3: dec r18 brne delay3 dec r17 brne delay2 dec r16 brne delay1 ret ; возврат в главную программу

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

Компиляция проекта производится командой ProjectBuild или нажатием кнопки F7. Процесс компиляции отображается в окне “Output”. Это окно можно «вытащить» командой ViewOutput.

В принципе, мы уже получили выходной файл в формате .hex, который уже можно загружать в микросхему и наблюдать перемигивание светодиодов. Однако, цель статьи – показать полный цикл работы в среде AVR Studio, поэтому мы переходим к стадии отладки. Это делается командой DebugStart Debugging.

Теперь устанавливаем в окне “Simulator Options” частоту кварца 7,3728 МГц для точного измерения времени выполнения программы.

Остальные опции следует оставить без изменения. Теперь можно выполнять программу в пошаговом режиме при помощи мыши или кнопки F11.

Пакет AVR Studio содержит мощные средства для просмотра и редактирования состояния внутренних регистров и портов ввода/вывода отлаживаемого микроконтроллера, а также время, выполнения программы . Доступ к ним осуществляется через окно “I/O”.

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

Для отладки нашего примера, чтобы получить доступ к битам порта D, надо раскрыть строку I/O ATMEGA128 и затем строку PORTD. Теперь видны все три регистра этого порта, PORTD, DDRD и PIND. Чтобы увидеть поля Value, Bits и Address, придется расширить правую границу окна, потеснив при этом окно с исходным текстом программы.

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

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

; Пример «Управление светодиодами от кнопок» ; написан для отладочной платы AS-MegaM ; светодиоды подключены к выводам PD6 и PD7 и через резисторы — на общий провод. ; кнопки — на PE4 и PE5 .include «m128def.inc» ; основная программа begin: ; инициализация стека ldi r16,low(RAMEND) out spl,r16 ldi r16,high(RAMEND) out sph,r16 ; инициализация светодиодов ldi r16,(1<<6) | (1<<7) out DDRD,r16 ; инициализация выводов, к которым подключены кнопки (на вход) ; внутренние подтягивающие резисторы подключены ; для этого в PORTE нужно установить соответствующие биты в единицы ldi r16,(1<<4) | (1<<5) out PORTE,r16 ; а в DDRE — в нули ldi r16,0 out DDRE,r16 ; бесконечный цикл forever: in r16,PINE ; теперь в r16 находится текущее «состояние» кнопок com r16 ; кнопка «нажимается» нулем, поэтому инвертируем регистр lsl r16 ; переносим биты 4,5 в позиции 6,7 lsl r16 ; и обновляем «показания» светодиодов andi r16,(1<<6) | (1<<7) out PORTD,r16 rjmp forever ; цикл выполняется бесконечно

Таким образом, на примере простейших программ показаны некоторые возможности пакета AVR Studio.

Надо понимать, что это лишь первое знакомство, позволяющее быстрее освоиться с базовыми командами пакета. Между тем, возможности рассматриваемого пакета намного шире. Например, здесь можно отлаживать программы написанные на языках высокого уровня. В частности, Си-компилятор фирмы ImageCraft пользуется отладчиком AVR Studio «как родным».

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

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

В меню Tools главного окна AVR Studio надо выбрать пункт Customize;

В окне Customize выбрать пункт Tools;

Двойным нажатием кнопки мыши или нажав Insert на клавиатуре, добавить новую команду в список и назвать ее «Программатор AS2»;

Указать путь к исполняемому файлу программатора, введя его непосредственно в поле для ввода «Command», или нажав на кнопку «…» справа от этого поля;

Теперь в меню Tools появился пункт «Программатор AS2».

Средства пакета AVR Studio 4.08 позволяют подключать вспомогательные программы – plugins. Первый plugin для AVR Studio – это программа графического редактора, упрощающая процесс инициализации ЖК-индикатора, которым может непосредственно управлять AVR-контроллер ATmega169. Максимальный логический размер ЖК-индикатора составляет 100 сегментов, каждому элементу индикатора ставится в соответствие бит в специальном регистре контроллера. Чтобы упростить рутинную процедуру привязки определенных битов к каждому сегменту, можно использовать вышеупомянутую программу.

Во время посещения «родины AVR» — норвежского офиса фирмы ATMEL, один из авторов статьи беседовал с Ларсом Квенилдом, руководителем группы программистов, которая создала и поддерживает пакет AVR Studio. Этот человек, классический программист, с бородой, в свитере и обутый в сандали на носки, рассказал о перспективах развития пакета.

В следующую версию (4.09) — будет включен интерфейс для нового внутрисхемного эмулятора – JTAGICE mkII (он называется также AT JTAGICE2), который во второй половине года придет на смену AT JTAGICE. У этого эмулятора есть два существенных отличия. С одной стороны, добавлена поддержка нового однопроводного отладочного интерфейса для младших AVR-контроллеров, debugWIRE. Этот интерфейс интересен тем, что он не занимает для своей работы дополнительные выводы микроконтроллера, так как использует для обмена вывод Reset микроконтроллера! С другой стороны (можно понимать это выражение буквально), у эмулятора AT JTAGICE2 появится, наконец, интерфейс USB для связи с компьютером.

  1. Материалы технического семинара AVR Technical Training. Atmel. Norway. December 2003.
  2. Николай Королев, Дмитрий Королев AVR-микроконтроллеры второго поколения: средcтва разработчика. // Компоненты и технологии, 2003 № 7
  3. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры второго поколения: новые аппаратные возможности // Компоненты и технологии. 2003. № 4.
  4. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры: большое в малом. //Схемотехника», 2001, №5
  5. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры: программные средства // Компоненты и технологии, 2000. № 4.
  6. Николай Королев. AVR: аппаратные средства разработчика // Компоненты и технологии, 1999 № 1
  7. Николай Королев. RISC- микроконтроллеры фирмы ATMEL //Chip-News 1998, №2
  8. Николай Королев, Дмитрий Королев AVR: новые 8-разрядные RISC-микроконтроллеры фирмы ATMEL
    //Микропроцессор Ревю, 1998, №1
Читайте также:
Samsung clock что это за программа

Источник: kit-e.ru

Среда разработки программ AVR Studio xx

Популярность микроконтроллеров AVR способствовала тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Данный раздел содержит обзор программных средств, предлагаемых самой фирмой Atmel, и начинается со знакомства с основным программным пакетом — AVR Studio.

AVR Studio — это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров семейства AVR (AT90S, ATmega, ATtiny) фирмы Atmel.

IDE AVR Studio содержит:

· транслятор языка ассемблера (Atmel AVR macroassembler);

· программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP).

Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка С. Отладчик AVR Studio по формату объектного файла совместим с ассемблерами фирм Atmel (AVR Assembler) и IAR Systems (EWA90-Assembler — ftp://www.atmel.com/pub/atmel/ewa90-a.zip). По формату объектного файла ubrof AVR Studio совместим с компилятором С фирмы IAR Systems (ICCA90 C Compiler — www.iar.com), по формату coff — с компиляторами С фирм Imagecraft (ICCAVR и ICCtiny — http://www.imagecraft.com/software/index.html) и HP Infotech (CodeVisionAVR — http://infotech.ir.ro).

AVR Studio распространяется свободно, его последняя версия всегда доступна на сайте фирмы Atmel (http://www.atmel.com/atmel/products/prod203.htm).

Создание и трансляция проекта

После запуска AVR Studio для создания нового проекта необходимо в меню Project выбрать команду New. В результате на экране появляется диалоговое окно (рис. 4.1), в котором необходимо ввести название проекта (Project name) и его расположение (Location). Новый проект удобнее создавать в отдельной папке.

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

Далее выбирается тип проекта:

· AVR Assembler.Использует встроенный макроассемблер AVR Studio.

· Generic 3D party C compiler.Использует внешний компилятор С, имеющий интерфейс командной строки.

При выборе пункта AVR Assembler после нажатия кнопки OK на экране появляется окно организации проекта (рис. 4.2), показывающее все связанные с проектом файлы. Далее к проекту должен быть добавлен файл программы на языке ассемблера. Это можно сделать разными способами: или в проект добавляется уже существующий файл с расширением .asm, или создается новый.

Для создания нового файла необходимо в этом окне выбрать группу Assembler Files и в меню Project выбрать пункт Add File. В открывшемся окне следует ввести название файла с расширением .asm. Если файл был создан ранее, то его необходимо найти на диске и двойным щелчком мыши занести в строку .

Рис. 2. Окно организации проекта

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

Значок этого файла в окне организатора проекта отмечен красной стрелкой вправо, все другие файлы проекта будут отмечены синими стрелками, направленными вниз (рис. 4.3). Все файлы проекта должны быть включены во входной файл проекта с помощью ассемблерной директивы .include. Для смены входного файла проекта на другой надо установить курсор мыши на нужный файл в окне организации проекта и щелкнуть правой кнопкой мыши. В открывшемся всплывающем окне надо указать этот файл как Assembler entry file.

Для того, чтобы в тексте ассемблерных файлов вместо адресов внутренних регистров микроконтроллера использовать их символические имена, нужно подключить к проекту файл, содержащий назначения символических имен всех регистров выбранного микроконтроллера (обычно его называют включаемым файлом), например m103def.inc. Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Appnotes в директории, где установлен AVR Studio.

Рис. 4.3. Окно организации проекта с подключенными файлами проекта

Для редактирования исходного текста программы необходимо в папке Assembler Files в окне организации проекта открыть нужный файл с расширением

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

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

Перед трансляцией нужно задать установки проекта. В пункте меню Project выбирается Project Settings, и в открывшемся окне установок проекта указывается необходимый формат выходного файла. AVR Studio поддерживает следующие выходные форматы:

· Intel Intellec 8/MDS (Intel Hex)

Для отладки в AVR Studio необходим файл в формате Object (объектный файл). Однако большинство программаторов в качестве входных используют файлы в формате Intel Hex.

Далее осуществляется трансляция программы и проверка правильности её написания. Выбирается пункт Assemble в меню Project. Открывшееся окно Project Output содержит сообщения ассемблера. В это окно выводится информация о количестве слов кода и данных, о наличии ошибок, и другая информация (рис. 4.5).

Рис.5. Окно сообщений ассемблера

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

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

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

Источник: studopedia.ru

Программный пакет AVR Studio

Популярность микроконтроллеров AVR способствовала тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Данный раздел знакомит с основным программным пакетом – AVR Studio, предлагаемым самой фирмой Atmel.

AVR Studio – это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров семейства AVR (AT90S, ATmega, ATtiny) фирмы Atmel.

IDE AVR Studio содержит:

· транслятор языка ассемблера (Atmel AVR macroassembler);

· программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP).

Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

После запуска AVR Studio для создания нового проекта необходимо в меню Project выбрать команду New Project. В результате на экране появляется диалоговое окно (рис. 3.1), в котором необходимо ввести название проекта (Project name) и его расположение (Location). Новый проект удобнее создавать в отдельной папке.

Далее выбирается AVR Simulator.В левомокне выбирается тип микроконтроллера. После нажатия кнопки Finish на экране появляется окно организации проекта (рис. 3.2), показывающее все связанные с проектом файлы и окно для редактирования программы.

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

Рис. 3.2 – Окно организации проекта

В это окно для редактирования файла можно с клавиатуры ввести текст программы на языке ассемблера или открыть уже существующий файл (пункт Add Fail в меню Project) (рис.3.3).

Еще один способ создания проекта: в меню Fail выбираем Open Fail, подключаем уже созданный файл программы. Далее можно транслировать программу.

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

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

Читайте также:
Программа matrix что это

Значок этого файла в окне организатора проекта отмечен красной стрелкой вправо, все другие файлы проекта будут отмечены синими стрелками, направленными вниз. Все файлы проекта должны быть включены во входной файл проекта с помощью ассемблерной директивы .include. Для смены входного файла проекта на другой надо установить курсор мыши на нужный файл в окне организации проекта и щелкнуть правой кнопкой мыши. В открывшемся всплывающем окне надо указать этот файл как Assembler entry file.

Для осуществления трансляции программы и проверки правильности её написания выбирается пункт Build (кнопка F7) в меню Project. Окно View Output содержит сообщения ассемблера. В это окно выводится информация о количестве слов кода и данных, о наличии ошибок, и другая информация (рис. 3.4).

Рис. 3.4 – Окно сообщений ассемблера

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

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

Для запуска отладчика необходимо выполнить процедуру Build and Run, которая вызывается при нажатии на соответствующую кнопку (F7+Ctrl) на панели управления. Процедура Build and Runвыполняется в два этапа. Сперва происходит трансляция входного ассемблерного файла, при которой независимо от установок проекта, кроме выходного файла заданного формата генерируется и объектный файл. Затем этот объектный файл загружается в отладчик.

Экран AVR Studio в режиме отладки представлен на рис. 3.5.

Рис. 3.5 – Экран AVR Studio в режиме отладки

При выполнении процедуры Build and run(или при загрузке объектного файла) автоматически открывается окно исходного текста исполняемой микроконтроллером программы.

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

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

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Step Into. Разница между ними в том, что команда Step Over не работает в подпрограммах. С помощью команд пошагового режима можно проследить изменения значений в регистрах устройств ввода/вывода, памяти и регистрового файла.

К командам шагового режима относятся также Auto Step и Multi Step. Помимо шагового режима, возможна отладка программы с использованием точек останова (Breakpoints). Командой Go запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова.

Рис. 3.6 – Окно исходного текста программы в режиме отладки

Для установки точки останова в AVR Studio служит пункт меню Debug -> Toggle Breakpoint. Точка останова ставится в строке, отмеченной курсором (рис. 3.7).

Рис. 3.7 – Точка останова в окне исходного текста

программы в режиме отладки

Красная отметка в левом поле окна исходного текста программы показывает установленную точку останова.

В процессе отладки также можно выбрать пункт меню Debug -> Run To Cursor (Ctrl+F10). При выборе этого пункта исполняемый код выполняется до достижения команды, обозначенной курсором. При этом, если отладчик обнаруживает точку останова, установленную ранее положения курсора, то останов будет выполнен только в случае его разрешения в окне Debug Option, в противном случае выполнение не приостанавливается. Если команда, обозначенная курсором, не достигается, отладчик продолжает исполнять код программы до тех пор, пока исполнение не будет прервано пользователем. Поскольку режим Run To Cursor зависит от позиции курсора, он доступен только при активном окне исходного текста.

Для остановки исполнения программы пользователем служит команда Break (Ctrl+F5). В состоянии останова эта команда недоступна. При отладке с использованием точек останова, или если адрес останова указан курсором в окне исходного текста, модификация информации во всех окнах происходит только при достижении останова (или при прекращении исполнения программы пользователем).

Пункт меню Debug -> Reset (Shift+F5) выполняет сброс микроконтроллера. Если программа при этом выполняется, то ее исполнение будет остановлено. После сброса информация во всех окнах модифицируется.

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

Регистровый файл микроконтроллера AVR отображается в окне Work space (вкладка I/O, рис. 3.8), а также можно открыть отдельное окно Registers (рис. 3.9). Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом.

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

Рис. 3.8 – Окно состояния регистрового файла

Рис. 3.9 – Окно I/O WorkSpace

Также в окне I/O WorkSpace отображается состояние встроенных периферийных устройств микроконтроллера (рис. 3.10).

Рис. 3.10 – Окно состояния устройств ввода/вывода

Рис. 3.11 – Развернутый порт PORTA и отображение

регистров EEPROM, JTAG, MISC

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

Для индикации состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z в процессе отладки программы предназначена вкладка Processor в окне I/O WorkSpace (рис. 3.12).

Рис. 3.12 – Окно состояния процессорного ядра

В этом же окне отображается текущее время выполнения программы и тактовая частота ядра микроконтроллера.

Просмотр ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения программы осуществляется также с помощью диалогового окна Memory. Падающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, Eeprom, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII-символов (рис. 3.13).

Рис. 3.13 – Окно просмотра содержимого памяти

Чтобы внести изменения в ячейке памяти достаточно дважды щелкнуть мышкой по данной ячейке.

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

Для сохранения проекта необходимо воспользоваться пунктом меню Project -> Close. При закрытии проекта сохраняются все его настройки. Во время следующей загрузки настройки будут автоматически восстановлены.

Работая с программным симулятором пакета AVR Studio, следует помнить, что он пока не поддерживает некоторые режимы работы микроконтроллеров AVR и их периферийные узлы:

· режим часов реального времени;

· режим пониженного электропотребления (инструкция «sleep» интерпретируется программным симулятором как «nop»).

studopedia.org — Студопедия.Орг — 2014-2022 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с) .

Источник: studopedia.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru