Система команд новых микроконтроллеров изначально оптимизировалась под компиляторы языков высокого уровня, что позволяет во многих случаях отказаться от программирования на ассемблере. Таким образом, микроконтроллеры AVR оказались очень удобными для использования начинающими разработчиками, поскольку совмещают простоту применения с достаточно высокой производительностью. Немаловажным фактором является также и их доступность на российском рынке.
В табл. 1 приведены характеристики практически всех выпускающихся в настоящее время микроконтроллеров семейства AVR. Нетрудно заметить, что в серии AVR присутствуют как микроконтроллеры начального уровня (TinyAVR), так и достаточно мощные устройства семейства MegaAVR с объемом памяти программ до 128 Кб и большим количеством интегрированных периферийных устройств. Однако, помимо самих микроконтроллеров, для обеспечения процесса разработки необходимо наличие развитого программно-аппаратного комплекса.
Процесс написания программ для микроконтроллеров AVR, как, пожалуй, и для любых других микроконтроллеров, состоит из нескольких этапов:
• подготовка исходного текста программы на каком-либо из языков программирования;
• компиляция программы;
• отладка и тестирование программы;
• окончательное программирование и подготовка к серийному производству.
На каждом из этапов необходимо применение специальных программных и аппаратных средств. Стоит отметить, что базовый набор программного обеспечения (компилятор ассемблера, ПО для программирования) распространяется фирмой Atmel бесплатно. Однако за достаточно долгий период времени, прошедший с момента появления этих микроконтроллеров, на рынке появилось большое количество программного обеспечения сторонних производителей. Ниже приведена информация о различных компиляторах для микроконтроллеров семейства AVR, причем основной упор сделан на рассмотрение свободно распространяемого программного обеспечения. Также освещены вопросы, связанные с самостоятельным созданием аппаратных средств разработки (преимущественно, программаторов и отладочных плат).
Выбор конкретного компилятора ассемблера является, пожалуй, наименее принципиальным вопросом, поскольку сам процесс компиляции (преобразования исходного текста программы в машинный код) выполняется достаточно однозначно. Собственно, все отличия между ассемблерами заключаются в возможностях препроцессора, обрабатывающего макрокоманды, наличии текстового редактора или среды разработки и типе поддерживаемой операционной системы.
AVR Studio (ATMEL)
Достаточно удачным выбором при разработке программного обеспечения для микроконтроллеров семейства AVR может послужить интегрированная среда разработки AVR Studio (текущая версия 4.17) фирмы Atmel, которая включает в себя текстовый редактор с подсветкой синтаксиса, компилятор ассемблера, симулятор, отладчик и интерфейс с аппаратными эмуляторами. Данная система распространяется фирмой Atmel бесплатно и ее можно скачать с сайта фирмы Atmel (www.atmel.com). Программа рассчитана на работу под управлением операционных систем Windows 9x, NT, 2000. К недостаткам AVRStudio можно отнести некоторую нестабильность работы отладчика, а также неполную симуляцию периферийных устройств (в частности, отсутствует симуляция АЦП). К плюсам же относится, в первую очередь, поддержка ей практически всех микроконтроллеров семейства AVR.IAR AVR Assembler
Также, с сайта Atmel можно скачать бесплатно распространяемый ассемблер фирмы IAR. Данный компилятор является частью IAR Embedded Workbench — среды разработки, включающей в себя менеджер проектов, редактор, линкер и менеджер библиотек. От ассемблера фирмы Atmel этот компилятор отличается расширенными возможностями по работе с макросами. Архив с программой расположен по адресу ftp://www.atmel.com/pub/atmel/iar_asm.zip. GNU/Linux AVR Assembler
Этот ассемблер, являясь полностью совместимым по входному коду с компилятором фирмы Atmel, имеет по сравнению с ним несколько преимуществ. Во-первых, он поставляется в исходных текстах, так что пользователь, в случае необходимости, может легко добавить новые возможности. Во-вторых, это один из немногих ассемблеров для микроконтроллеров фирмы AVR, работающих под управлением операционной системы Linux (кроме того, наличие исходных текстов позволяет легко перенести его на любую другую Unix-систему). И наконец, в GNU AVR Assembler значительно расширены, по сравнению с ассемблером фирмы Atmel, возможности по работе с макрокомандами (в частности, допускаются макросы внутри макросов). Программа распространяется по условиям GNU Public License (GPL). Домашняя страничка программы расположена по адресу http://home.worldonline.dk/~tomo/, а саму программу можно скачать по адресуhttp://www.image.dk/~tomo/ tavrasm.tar.gz (Linux-версия), http://www.image.dk/~tomo/tavrasm.zip (DOS-версия) или http://www.image.dk/~tomo/tavrasmw.zip (консольная Windows-версия).
Компиляторы языка C
В последнее время все популярнее становится использование компиляторов языков высокого уровня при написании программ для микроконтроллерных систем. Наибольшее распространение при этом получили компиляторы языка C, поскольку в этом языке наиболее просто реализуются все необходимые возможности по управлению аппаратными средствами микроконтроллеров.
IAR C Compiler
Компилятор фирмы IAR общепризнанно является одним из лучших компиляторов C для микроконтроллеров семейства AVR. Связано это, в первую очередь, с наличием в нем богатых возможностей по оптимизации кода. Пожалуй, единственным существенным его недостатком является то, что в демонстрационной версии накладываются значительные ограничения на максимальный объем кода. Компилятор поставляется в составе интегрированной среды разработки IAR Embedded Workbench (EWB), включающей в себя также компилятор ассемблера, линкер, менеджер проектов и библиотек, а также отладчик. Скачать демонстрационную версию пакета можно с сайта фирмы IAR Systems, расположенного по адресу http://www.iar.se/Image Craft C Compiler
Image Craft C Compiler является, пожалуй, вторым по популярности компилятором языка C для микроконтроллеров семейства AVR. К настоящему времени уже выпущена версия 6.18 компилятора. К преимуществам этого компилятора относятся поддержка микросхем семейства FPSLIC фирмы Atmel, неплохой уровень оптимизации кода и достаточно низкая цена (<$250). Демо-версия компилятора не содержит функциональных ограничений и лимитирована только временем работы (30 дней). Кроме того, это, наверное, один из самых быстро развивающихся компиляторов, что позволяет надеяться на быстрое устранение существующих недостатков. Необходимую информацию о компиляторах фирмы Image Craft можно получить на сайте фирмы по адресу http://www.imagecraft.com/, там же можно загрузить демонстрационную версию (полный функционал на 45 дней)Code Vision AVR C Compiler
Другим популярным компилятором языка C для микроконтроллеров семейства AVR является Code Vision AVR C Compiler. Демонстрационная версия компилятора, так же, как и компилятор фирмы IAR, имеет ограничение на максимальный объем генерируемого кода (однако стоит отметить, что цена полной версии компилятора достаточно невысока и составляет порядка $150, причем в эту сумму включена годичная техническая поддержка; кроме того, если нет необходимости использования микроконтроллеров MegaAVR, можно приобрести облегченную версию компилятора без их поддержки всего за $90). Компилятор поставляется вместе с интегрированной средой разработки, в которую помимо стандартных возможностей, включена достаточно интересная функция — CodeWizardAVR Automatic Program Generator. Фактически это генератор стандартных блоков программы, выполняющих следующие функции:• настройка доступа к внешней памяти;
• определение причины сброса микроконтроллера;
• инициализацию портов ввода/вывода, внешних прерываний, таймеров, сторожевого таймера;
• инициализацию асинхронного порта последовательной передачи данных (UART) и буферизированный прием и передачу данных;
• настройку аналогового компаратора и АЦП;
• инициализацию шины I2C и подключенных к ней температурного сенсора LM75 или часов реального времени PCF8583, DS1302, DS1307;
• реализацию протокола 1-Wire Bus и инициализацию температурного
сенсора DS1820;
• управление LCD-индикатором. Наличие этой возможности в некоторой степени упрощает написание программ, хотя, конечно, сгенерированный таким образом код далеко не всегда оказывается применим без проведения изменений. Наличие в среде разработки последовательного терминала позволяет производить отладку программ с использованием последовательного порта микроконтроллера.
Компиляторы Basic
Помимо C при разработке программного обеспечения для микроконтроллерных систем применяются и другие языки высокого уровня. Так, для микроконтроллеров семейства AVR существуют также компиляторы языков Basic, Pascal и Forth.
BASCOM-AVR — компилятор языка Basic, разработанный фирмой MCS Electronics. Имеется демо-версия с ограничением на объем генерируемого кода. По входному коду компилятор практически полностью совместим с компиляторами VisualBasic/QuickBasic фирмы Microsoft. В синтаксис языка добавлено несколько новых команд для обеспечения поддержки LCD-индикаторов, I2C и 1-Wire интерфейсов, обработки прерываний и других специфических для микроконтроллеров возможностей. Демонстрационную версию компилятора и всю необходимую документацию можно скачать по адресу http://www.mcselec.com/download_avr.htm.
ABC Basic Compiler, разработанный фирмой Investments Technologies PTY, позволяет писать и отлаживать программы на языке Basic в интегрированной среде разработки. Существуют версии компилятора как под Windows, так и под DOS. Полная версия компилятора стоит $50, а демонстрационную версию можно загрузить по адресу http://www.hawknet.com.au/~invtech/html/downloads.html
Программаторы
Благодаря возможности внутрисхемного программирования микроконтроллеры семейства AVR не требуют применения сложных программаторов, и в простейшем случае можно обойтись просто пятью проводами, соединяющими микроконтроллер и принтерный порт компьютера. Одной из лучших программ, предназначенных для записи прошивки во flash-па-мять микроконтроллера с использованием различного рода несложных кабелей, является AVReal (автор — Александ Редчук, real@real.kiev.ua). Последнюю версию программы всегда можно найти по адресу http://www.chat.ru/~avreal/.
Кроме этого, существует множество схем программаторов, поддерживающих микроконтроллеры семейства AVR. К ним относятся Sample Electronics AVR Programmer/Emulator
(http://www.sample.co.kr/avr/e-avr.htm), Pony Programmer (http://www.CS.UniBO.it/~lan-conel/prog.html), SP12 Programmer (http://www.xs4all.nl/~sbolt/e-spider_prog.html#programmer, выделяется среди прочих работой под Windows 2000 и Linux), BA1FB ATMEL AVR Programmer (FBPRG, http://www.qsl.net/ba1fb/), AVR Parallel Programmer (http://www.fangorn.demon.co.uk/projects/avr/avrprogger.html), Microcontroller In-System Programmer (UISP, http://www.geocities.com/msbechtold/uisp/uisp.html) и множество других.
В целом благодаря высокой популярности микроконтроллеров семейства AVR для них за достаточно короткий промежуток времени было разработано большое количество программного и аппаратного обеспечения, что позволяет значительно ускорить процесс разработки микроконтроллерных систем. Кроме того, как уже говорилось, эти микроконтроллеры идеально подходят для начинающих, поскольку совмещают простоту использования с достаточной вычислительной мощностью, широким выбором встроенных периферийных устройств и сравнительно низкой ценой
Схемотехника №1 2000 г. Виталий Измайлов, Тверь
есть еще хорошие компиляторы mikroElektronika
ОтветитьУдалить