Программно-аппаратные средства поддержки AVR

Подготовка программы для AVR-микроконтроллера выполняется на персональном компьютере и состоит из следующих этапов:

создание текста программы;

трансляция текста в машинные коды и исправление синтаксических ошибок;

отладка программы, то есть устранение логических ошибок;

окончательное программирование AVR-микроконтроллера.

Каждый из этапов требует использования специальных программных и аппаратных средств. В Таблице 4 перечислены наиболее доступные из них на сегодняшний день. Базовые программные средства для программирования AVR на ассемблере распространяются фирмой ATMEL бесплатно. Аппаратные средства поддержки программирования AVR а также более развитые средства для программирования AVR на языке C фирмы IAR Systems имеют коммерческое исполнение.

При работе в среде MS-DOS для выполнения первого и второго этапа приходится пользоваться различными средствами. Для создания текста программы подойдет любой текстовый редактор DOS, который формирует на выходе ASCII-файлы, например, встроенный редактор Norton Commander, редактор Multi Edit и т. п. Для трансляции текста программы в коды фирмой ATMEL предлагается DOS-версия программы-транслятора AVRASM.

Для работы в среде Windows 3.11/95/NT фирмой Атмел предлагается программа WAVRASM, которая позволяет выполнить создание текста программы и его трансляцию внутри единой оболочки и обеспечивает дополнительный сервис для быстрого поиска синтаксических ошибок в тексте программы.

Результатом Вашей работы на первом этапе является файл <имя_файла>.asm, который содержит текст программы (расширение имени файла обычно указывает на язык программирования) и является входным для программ-трансляторов, которые, в свою очередь, создают четыре новых файла: файл-листинг (<имя_файла>.lst), объектный файл (<имя_файла>.obj), файл-прошивку FLASH-памяти (<имя_файла>.hex), файл-прошивку EEPROM-памяти (<имя_файла>.eep).

Таблица 4: Программно-аппаратные средства поддержки AVR.

 

Файл-листинг - это отчет транслятора о своей работе. В нем приводится транслируемая программа в виде исходного текста, каждой строке которого сопоставлены соответствующие двоичные коды. Кроме того, листинг содержит сообщения о выявленных ошибках.

Объектный файл, создаваемый программой WAVRASM, используется в дальнейшем как входной для программы-отладчика AVRSTUDIO и имеет специальный формат.

Файлы прошивки FLASH и EEPROM блоков памяти предназначены для работы с любыми последовательными и параллельными программаторами AVR и имеют стандартные форматы.

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

Для программирования AVR-микроконтролеров на языке C фирмой IAR Systems предлагается развитый пакет Embedded Workbench EWA90 (www.iar.com). Этот пакет объединяет в себе:

IAR C компилятор;

IAR ассемблер;

Компоновщик;

Библиотекарь;

IAR C_SPY cимулятор.

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

Отладка программы AVR-микроконтроллеров может выполняться двумя основными способами: на персональном компьютере при помощи программы-симулятора или в реальной микропроцессорной системе. Два эти способа взаимно дополняют друг друга.

Программы-симуляторы Atmel AVRSTUDIO или IAR C_SPY отображают на экране компьютера Вашу программу и состояние внутренних регистров AVR. Таким образом, становится возможным наблюдать изменения переменных, которые происходят внутри микроконтроллера при выполнении тех или иных команд программы. Отметим, что в реальной системе при помощи осциллографа невозможно просмотреть состояние внутренних регистров. Использование симуляторов эффективно при отладке подпрограмм, которые выполняют численную обработку внутренних данных.

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

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

Наиболее быстрый, не требующий пайки способ построения микропроцессорной системы на основе AVR - это приобретение какого-либо комплекта AVR STARTER KIT фирмы ATMEL. В настоящее время существует три разновидности таких комплектов: STK100 для TinyAVR, STK200 для Classic AVR и STK300 для MegaAVR.

Наборы STK100, STK200 и STK300 содержат небольшую печатную плату DEVELOPMENT BOARD, кабель для последовательного программирования AVR через LPT-порт компьютера, дискеты с программным обеспечением (ATMEL_AVR_ISP), CD-ROM с полной документацией на все типы AVR и многочисленными примерами прикладных программ для AVR. Содержимое дискет и CD-ROM диска можно также найти на www.atmel.com

Плата DEVELOPMENT BOARD из наборов STK200, STK300 имеет следующие узлы:

встроенный стабилизатор напряжения питания;

панельки для подключения различных типов AVR-микроконтроллеров в DIP-корпусах;

разъем для последовательного программирования AVR;

узел интерфейса RS-232;

набор из 8 светодиодов, которые можно подключать к выводам портов микроконтроллера;

набор из 8 кнопочных переключателей, которые можно подключать к выводам портов микроконтроллера;

панель для подключения внешней SRAM;

разъем для подключения жидкокристаллического индикатора (ЖКИ);

разъемы, через которые при помощи гибких кабелей можно наращивать микропроцессорную систему. Например, можно подключить собственный макет аналоговой части какого-либо устройства.

Универсальность DEVELOPMENT BOARD удобна для обучения и для макетирования новых разработок.

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

В этом случае кроме собственного макета необходимо приобрести еще какое-либо программирующее устройство.

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

Для последовательного программирования собственной микропроцессорной системы по SPI-интерфейсу можно воспользоваться программой ATMEL_AVR_ISP, если Вы являетесь обладателем кабеля к LPT порту из наборов STK200 или STK300.

Если же у Вас нет фирменного кабеля, то можно воспользоваться программой AVREAL, которую разработал и подарил всему миру (www.chat.ru/~avreal, www.ln.com.ua/~real/avreal) Александр Редчук. Программа AVREAL работает под DOS и, кроме обычных функций просмотра, стирания и записи энергонезависимой памяти, обеспечивает возможность дописывать FLASH-память AVR без очередного стирания кристалла, а также вести подсчет количества циклов перезаписи энергонезависимой памяти.

Кроме того, функцией программирования по последовательному SPI-интерфейсу обладает параллельный программатор FLASHER.

Способ отладки микропроцессорной системы при помощи SPI-интерфейса отличается своей дешевизной, но, однако, имеет и недостатки. Во-первых, каждый раз при внесении изменений в программу Вы перепрограммируете FLASH-память микроконтроллера, количество циклов перезаписи которой ограничено хоть и достаточно большим (1000), но все же конечным числом. Во-вторых, описанный способ не дает возможности пошаговой отладки программы.

В связи с этим, фирмой ATMEL разработаны более мощные, но и более дорогие внутрисхемные эмуляторы) ICE200, ICEPRO и megaICE. Они представляют собой микропроцессорные устройства, которые с одной стороны связываются с Вашей микропроцессорной системой через панель, предназначенную для установки AVR-микроконтроллера, а с другой - с персональным компьютером и работают под управлением уже упоминавшейся программы фирмы Атмел AVRSTUDIO. Внутрисхемные эмуляторы позволяют выполнять программу в Вашей системе в пошаговом режиме и неограниченное число раз вносить изменения в программу. При работе с внутрисхемным эмулятором Вы одновременно можете на экране компьютера наблюдать состояние внутренних ресурсов процессора, а на микропроцессорной плате - реакцию системы на те или иные команды программы.

Завершающим этапом программирования AVR-микроконтроллера является занесение в память уже отлаженной программы. Оно может быть выполнено так же, как и при отладке программы, то есть через SPI-интерфейс. Однако необходимо помнить, что последовательное программирование младших моделей AVR не позволяет изменять FUSE-биты микроконтроллера.

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