AVR-микроконтроллеры: программные средства
Не будет преувеличеним сказать, что огромное число разработчиков микропроцессорных систем в мире, а особенно в Советском Союзе, выросло на 8-разрядных микропроцессорах 8080 и микроконтроллерах MSC 48/51 фирмы INTEL. Несмотря на то что этим архитектурам уже более 20 лет и сама фирма INTEL давно забыла об этих микросхемах, аналоги MSC 51 фирмы INTEL еще продолжают выпускаться многими производителями. Между тем, прогресс не стоит на месте, и новые микропроцессорные архитектуры на основе RISC-ядра постепенно вытесняют классические CISC-системы. Это относится как к мощным универсальным микропроцессорам (яркий пример — совместная разработка IBM и Motorola — RISC-процессор Power PC), так и к 8-разрядным микроконтроллерам. Тем не менее часто в новых разработках закладывается 8051-совместимая микросхема. Причин этому несколько — знакомая, испытанная система команд, богатый архив наработанного программного обеспечения, легкодоступные ассемблеры и компиляторы. Однако вычислительная мощность этих микроконтроллеров для некоторых приложений недостаточна, и тогда приходится искать новые решения.
Одно из таких решений — использование AVR-микрконтроллеров фирмы Atmel. Они выпускаются в корпусах с цоколевкой, идентичной Intel 8051, что позволяет ставить эти микросхемы в уже изготовленные печатные платы.
В процессе выбора элементной базы для создания нового устройства разработчик рассматривает не только технические характеристики того или иного микроконтроллера, но также большое внимание уделяет средствам поддержки — как аппаратным (стартовые наборы, программаторы, внутрисхемные эмуляторы), так и программным (языки низкого и высокого уровня, симуляторы). Естественно, в расчет берется не только удобство работы и функциональные возможности конкретного пакета программ, но и его стоимость. Данная статья посвящена рассмотрению программных средств для разработки устройств с использованием микроконтроллеров семейства AT90S, выпускаемых фирмой ATMEL.
В настоящее время AVR-микроконтроллеры фирмы ATMEL завоевали широкую популярность на российском рынке. И это неудивительно — по количеству моделей в семействе они занимают первое место в мире среди ФЛЭШ-микроконтроллеров и по совокупности своих характеристик опережают большинство аналогичных изделий, занимая одно из первых мест в мире по соотношению цена/производительность. Высокая производительность достигнута не в последнюю очерель благодаря мощному и удобному набору команд, существенно повышающему эффективность кода по сравнению с микроконтроллерами классической архитектуры.
Как станет ясно из нижеизложенного материала, основным инструментом программиста является интегрированная среда разработки (IDE — INTEGRATED DEVELOPMENT ENVIRONMENT) — AVR STUDIO® 3.0. Эта оболочка включает в себя текстовый редактор, менеджер проектов, отладчик и предоставляет следующие возможности:
- создание и редактирование исходного кода на ассемблере;
- символьная отладка в исходных кодах;
- просмотр содержимого ФЛЭШ-ПЗУ, ЭСПЗУ, ОЗУ, регистров и портов ввода/вывода;
- неограниченное число точек прерывания;
- буфер трассировки;
- просмотр и модификация переменных с поддержкой механизма Drag-and-Drop;
- модификация состояния активности выводов портов ввода/вывода;
- загрузка файлов в форматах COFF, UBROF6 и HEX;
- поддержка проектов на языках С, Паскаль и Бейсик;.
- совместная работа со всеми внутрисхемными эмуляторами фирмы Atmel.
Менеджер проекта (project manager) объединяет в проект группу файлов и обеспечивает интерфейс для подключения внешнего ассемблера/компилятора. Таким образом, есть возможность писать программу на выбранном языке и компилировать ее выбранным компилятором. Мощный текстовый редактор, входящий в AVR Studio, обеспечивает «бесшовную» стыковку с внешним компилятором и линкером. Исходный код можно редактировать непосредственно в отладочном окне. Поддерживается цветовое выделение соответствующих фрагментов исходного кода.
Пользовательский интерфейс специально разработан для облегчения работы пользователя. Инструментальные панели (toolbars) и клавиши быстрого доступа обеспечивают удобный доступ ко всем ресурсам AVR-микроконтроллера. Установка точек прерывания и переключение на окно исходного текста производится одним нажатием кнопки мыши.
Одной из важных характеристик AVR Studio является встроенная поддержка работы с внутрисхемным эмулятором. При запуске программы производится опрос COM-портов компьютера на предмет наличия подключенного эмулятора. Если на каком-либо COM-порте обнаруживается эмулятор (в общем случае допускается совместная работа нескольких эмуляторов), AVR Studio стартует в режиме аппаратной отладки (emulator mode), о чем сообщает надпись «emulator» в нижней части основного окна, иначе активизируется режим симулятора. Пользовательский интерфейс в обоих случаях идентичный.
Эмуляторы AVR ICE 200, ICE PRO и AVR ICE 30 имеют возможность обновления конфигурации. Соответствующее программное обеспечение входит в состав AVR Studio. При инициализации эмулятора происходит проверка тетекущей версии эмулятора и при необходимости выводится окно с предложением «обновить» версию.
Архитектура AVR-микроконтроллеров спроектирована под компиляторы с языков высокого уровня. В частности, большое количество регистров общего назначения удобно для хранения «регистровых» переменных при написании программы на С. Этому способствует также высокое быстродействие микроконтроллеров (время выполнения команды составляет 100–150 наносекунд) и практически неограниченный объем памяти программ (микросхем ATmega 103 имеет ФЛЭШ-ПЗУ программ объемом 128 Кбайт). Фирмы, выпускающие С-компиляторы для микроконтроллеров, не заставили себя ждать и вскоре предложили соответствующие пакеты. Из всего разнообразия наиболее интересны два — первый от шведской фирмы IAR Systems и второй от американской фирмы ImageCraft Creations Inc.
Фирма IAR Systems известна своей плодовитостью, ее продукты поддерживают около двадцати типов микроконтроллеров разных фирм-производителей. В комплект поставки входит среда разработки IAR Embedded Workbench и отладчик IAR C-Spy. Девиз фирмы «Различные архитектуры. Одно решение». Такой подход имеет неоднозначную оценку пользователей. С одной стороны — единая среда разработки облегчает переход к новому типу микроконтроллера. С другой стороны, вследствие такой универсальности усложняется настройка опций компиляции и оптимизации — приходится разбираться среди массы возможно неиспользуемых для конкретного микроконтроллера ключей и настроек. Нередко приходится прибегать к прямому редактированию xcl-файлов. Для ознакомления с пакетом предлагается демо-версия, имеющая следующие ограничения: максимальный размер исходного кода на языке С составляет 2 Кбайта, на ассемблере — 1 Кбайт, размер откомпилированного приложения — 2 Кбайта, размер файла для отладки — 2 Кбайта. Кроме того, формат файлов сделан таким, что они читаются только внутри этой демо-версии.
Следует отметить, что цена С-компилятора фирмы IAR Systems составляет в зависимости от приобретаемой конфигурации от 2500 до 3600 долларов США, что является существенным ограничивающим фактором для приобретения его многими российскими фирмами.
Более интересен для рассмотрения второй из ранее упомянутых С-компиляторов. Фирма ImageCraft пошла принципиально другим путем. Ее оптимизирующий компилятор написан специально для AVR-микроконтроллеров, и, как следствие, он достаточно компактен: дистрибутив имеет объем 2,5 мегабайта, а после установки на диск компилятор занимает немногим более 4 мегабайт. При скромных размерах он имеет достаточно богатый набор характеристик. Интегрированная среда разработки (IDE) функционирует под управлением Windows 95/98/NT, включая в себя текстовый редактор с полноценной поддержкой русского языка и менеджер проекта, который формирует стандартный makefile. Обеспечивается поддержка практически всех AVR-микроконтроллеров, включая еще не выпущенные ATmega161/163 и FPSLIC AT94. Для микросхем семейства ATtiny и AT90S1200, не имеющих внутреннего ОЗУ, есть пакет ICCTinyAVR. Опции компиляции можно выбрать из стандартного набора или установить самостоятельно, выбрав в поле «тип микросхемы» — custom device. В результате компиляции формируется стандартный HEX-файл для загрузки в микросхему, файл в формате COFF, который «понимает» AVR Studio, и файл с листингом в текстовом формате. Компилятор совместим со стандартом ANSI C. Исходный текст может содержать вставки на ассемблере (строки или ассемблерные модули). Ассемблерные директивы могут включать условное выполнение, include-файлы, макросы и текстовые определения.
Библиотеки включают функцию printf, распределение памяти, строковые и математические функции. Также есть специальные функции, такие как доступ к ЭСПЗУ, АЦП и SPI-интерфейсу. При возникновении каких-либо вопросов можно обратиться к достаточно подробно написанному help-файлу или к входящей в комплект книге объемом около 120 страниц. Следует отметить, что есть возможность обратиться за помощью непосредственно на фирму ImageCraft, написав письмо по адресу Эта возможность была проверена дважды, и авторы подтверждают, что на следующий день они находили в своем почтовом ящике исчерпывающие ответы на заданные вопросы. Еще одно несомненное преимущество работы с программой ICC AVR от ImageCraft — это возможность полноценной работы до приобретения С-компилятора. Последняя демо-версия пакета доступна на сайте производителя программы по адресу http://www.imagecraft. com/software/index.html, либо на сайте российского дистрибьютора http://atmel. argussoft.ru, причем эта версия максимально дружелюбна: пользователь может работать с исходными текстами неограниченной длины и компилировать файл для любой микросхемы. Единственное ограничение — время работы, 30 дней. Его достаточно для разработки даже крупного проекта. По истечении месяца пользователь должен принять решение: или переформатировать винчестер, чтобы еще раз установить демо-версию, либо отдать 240 долларов и приобрести официальный дистрибутив и право на техническую поддержку.
В качестве иллюстрации разработки проекта в С-компиляторе фирмы ImageCraft ниже приводится пример разработки устройства «Цифровые часы с функцией измерения и отображения температуры окружающей среды» на микроконтроллере AT90S2313. Датчиком температуры в данном приборе служит микросхема фирмы Analog Devices AD7817, а устройством отображения — любой стандартный цифробуквенный жидкокристаллический индикатор с контроллером типа HD44780.
Исходный код программы часов представлен на предыдущей странице (программа 1).
Частота задающего генератора = 4 MГц.
Программа 1
|
Ниже представлена функция работы с AD7817 (программа 2). Для отображения на второй строке индикатора температуры окружающей среды, следует подключить эту функцию.
Программа 2
|