Программирование микроконтроллеров программа avr

Lazarus-AVR, №1. Программирование микроконтроллеров AVR в IDE Lazarus

Микроконтроллеры: AVR (ATmega328p); Среда программирования IDE Lazarus (кросс-платформенный 32x) (ОС: Windows 64x).

Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать — лень. Конечно, вспомнить Си — это 10-30 минут, но лень. Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.

Использование кросс-компиляции было основано на этой статье, в дальнейшем выкинуто всё лишнее (с моей точки зрения). Показываю как это заработало у меня.

Итак, для программирования микроконтроллеров (avr, arm и др.) на Lazarus необходимо скачать дополнительные ppu-файлы и другие вспомогательные модули. Это можно сделать несколькими способами:

  • fpcupdeluxe — скачивает все необходимые файлы и самостоятельно собирает кросс-компилятор: ppcrossavr.exe. Моя статья по настройке fpcupdeluxe: Lazarus-AVR, №2. Как получить компилятор для микроконтроллеров AVR с помощью Fpcupdeluxe;
  • Самостоятельно скачать из репозитория и собрать кросс-компилятор (для меня этот путь показался сложным);
  • по шагам wiki.freepascal.org.

Настройка целевой платформы в IDE Lazarus

1. Для настройки целевой платформы, для которого будет генериться hex-файл, необходимо указать ОС на которой будет выполняться код — embedded; семейство процессоровavr и целевой процессор (субархитектура) — avr5, совместимы с теми, которые используются GCC (например, ATmega328p относится к avr5):

Читайте также:  Основы объектно ориентированного программирования структура

2. А так же выбрать конкретный процессор для программирования в «Параметры пользователя»:

3. Для компиляции проекта нужно указать путь к компилятору. Открываем Параметры проекта —> Команды компилятора—> Команда —> C:\fpcupdeluxe\fpc\bin\i386-win32\ppcrossavr.exe:

4. Для того, чтобы Lazarus мог найти компилятор и дополнительные файлы необходимо один раз указать пути. Это можно сделать поправив в блокноте файл Lazarus «c:\lazarus\fpc\3.2.2\bin\i386-win32\fpc.cfg» (в конце файла):

#IFDEF EMBEDDED
#IFDEF CPUAVR
-FDC:\fpcupdeluxe\cross\bin\avr-embedded
-XPavr-embedded-
-FlC:\fpcupdeluxe\cross\lib\avr-embedded$fpcsubarch\

-Fuc:\fpcupdeluxe\fpc\bin\i386-win32
-FuC:\fpcupdeluxe\fpc\units\avr-embedded$fpcsubarch
-FuC:\fpcupdeluxe\fpc\units\avr-embedded$fpcsubarch*
-FuC:\fpcupdeluxe\fpc\units\avr-embedded$fpcsubarch\rtl
-FuC:\fpcupdeluxe\fpcsrc\rtl\units\avr-embedded

-Fic:\fpcupdeluxe\fpcsrc\rtl\inc
#ENDIF CPUAVR
#ENDIF EMBEDDED

Тестирование

program Timers;   uses uInterrupts, delay; //=== Entry point ============================================================= begin DDRC := $FF; // настраиваем все линии порта C на вывод //PORTC := $00; // выводим лог. 0 на все линии порта C //=== Main loop ========================================= while True do begin PORTC := $FF; // выводим лог. 1 на все линии порта C delay_ms(1000); // задержка 1000 мс = 1 с PORTC := $00; // выводим лог. 0 на все линии порта C delay_ms(1000); // задержка 1000 мс = 1 с end;//Main loop end. 

Процедуру задержки можно взять с ресурса: https://github.com/ccrause/fpc-avr

Компиляция Ctrl+F9 заняла 0,1 сек в результате чего появились 3 файла: hex, bin и elf. Загружаем hex-файл в модель и видим, что прошивка работает:

Источник

Программные средства для микроконтроллеров AVR фирмы Atmel

Для написания и отладки микропрограммного обеспечения (МПО) требуется ряд инструментов, в т.ч.:

  • редактор кода программы;
  • компилятор;
  • отладчик кода программы (с помощью симулятора и/или аппаратного отладчика);
  • интерфейсы аппаратных отладочных средств (эмуляторы, программаторы, отладчики).

Для ускорения процесса создания МПО также могут использоваться мастера автоматической генерации кода программы, библиотеки функций и другое вспомогательное ПО.

Перечисленные инструменты, как правило, доступны в виде единого программного пакета, который носит название интегрированной среды для проектирования (IDE). Ниже, можно ознакомиться с большинством популярных IDE для микроконтроллеров AVR.

Наименование Разработчик Описание Язык программирования Ограничения бесплатной версии
AVR Studio Atmel Полностью бесплатная профессиональная IDE от производителя МК AVR. Ассемблер, Си/Си++ 1) нет
WinAVR Открытое ПО http://winavr.sourceforge.net/ Открытая IDE на основе бесплатного Си-компилятора AVR GCC. Си, Си++ нет
Arduino Arduino Software http://arduino.cc/ Написанная на Java и полностью бесплатная IDE, которая является частью одноименной открытой аппаратной платформы на основе МК AVR. Содержит простой редактор кода, компилятор (AVR GCC) и интерфейс программатора. Processing/ Wiring 2) нет
Algorithm Builder http://algrom.net/ Бесплатная IDE, которая в целях сокращения сроков разработки ПО в 3-5 раз, предлагает графический способ программирования в виде блок-схемы алгоритма. Графический ассемблер нет
AVRco E-LAB http://www.e-lab.de Простая в освоении коммерческая IDE с компилятором Паскаль и удобным мастером создания проекта, который автоматически добавляет поддержку драйверов указанных внутренних и внешних аппаратных компонентов. Паскаль 1) поддерживаются все МК, а код программы ограничен 4 килобайтами
2) поддерживаются только mega8/mega48, а код программы ограничен 8 килобайтами
IAR Embedded Workbench IAR Systems http://www.iar.com/ Профессиональная коммерческая IDE. Си, Си++ 1) 30-дневная оценочная версия
2) версия с ограничением кода программы 4 килобайтами
Micro-IDE BiPOM Electronics http://www.bipom.com/ Коммерческая недорогая IDE, поддерживающая разнообразные платформы МК. Поддержка МК AVR обеспечивается версией BASCOM-AVR со встроенным компилятором Бейсик. Бейсик Демоверсия с ограничением кода программы 2 килобайтами
SwiftForth Forth Inc. http://www.forth.com/ Интерактивная многоплатформенная коммерческая IDE на основе кросс-компилятора языка Forth, разработанного специально для встраиваемых систем и систем реального времени Forth Ограничение по коду программы, невозможность сохранения объектных файлов
CodeVisionAVR HP Infotech http://www.hpinfotech.ro Высококачественная IDE со встроенными ANSI Си-компилятором и мастером автоматической генерации программы. Си Оценочная версия с ограничением кода программы 3 килобайтами
Proteus Labcenter Electronics http://www.labcenter.co.uk/ Proteus — система для разработки электронных устройств на основе МК, в т.ч. AVR. Её схемный редактор поддерживает уникальную возможность моделирования работы электрической схемы вместе с МК, исполняющим заданную программу. При подключении специальных отладочных файлов (elf, cof) превращается в полнофункциональный отладчик программы на уровне исходного кода. Ассемблер, Си 3) Невозможность сохранения, печати и создания собственных схем на основе МК (допускается только просмотр и модификация входящих в комплект примеров)
  1. Cовместно с WinAVR.
  2. Язык Processing/Wiring — это тот же Си/Си++, но дополненный рядом простых в использовании библиотек для решения типичных задач ввода-вывода. Создан с целью быстрого освоения программирования МК даже новичками, аматерами и неспециалистами в области разработки встраиваемого ПО.
  3. В комплект не входят.
Тип Наименование
Компилятор Компилятор ассемблера для AVR
Утилита программирования ChipBlasterAVR — универсальная утилита для внутрисистемного программирования

3. Микропрограммное обеспечение

3.1. Операционные системы

Наименование, ссылка Описание
FreeRTOS http://www.freertos.org/ Многоплатформенная открытая операционная система реального времени (ОСРВ), которую абсолютно бесплатно можно использовать в коммерческих применениях.

Источник

Программы для микроконтроллеров

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

Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. Freeware

Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику. Freeware (бесплатная с ограничением на код 4 кБ) и Shareware

IDE для AVR микроконтроллеров. Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR, формирует емкий и результативный программный код. Платная, есть бесплатная Evaluation-версия с ограничением на код 4 кБ.

Инструмент для разработки и отладки программного кода, а также моделирования работы радиотехнических устройств на базе AVR микроконтроллеров. Freeware

Среда разработки, выполненная на базе открытой системы Arduino IDE и предназначенная специально для контроллеров PIC32 от компании Microchip Technology.

Небольшой, но весьма эффективный бесплатный программный пакет для прошивки PIC-микроконтроллеров различных серий. Есть русский язык.

Простое программное обеспечение для прошивки PIC-микроконтроллеров, отличающееся стабильностью, качеством и скоростью программирования. Freeware

Бесплатная высокоинтегрированная программная среда, предназначенная для разработки кода микроконтроллеров архитектуры ARM и др.

Среда разработки, представляющая собой набор утилит для выполнения полного комплекса мероприятий по написанию программного обеспечения для микроконтроллеров различных семейств. Платная, но есть демоверсия с рядом ограничений, в т.ч. на размер кода — не более 32 КБ.

Многофункциональная среда разработки приложений на языках C, C++ и ассемблере для целого ряда микроконтроллеров от различных производителей. Среда разработки платная, но бесплатная версия с ограничениями на размер кода в зависимости от микроконтроллера.

Один из передовых графических языков программирования для микроконтроллеров. Поддержка русского языка. Платная, но есть бесплатная версия с ограничениями и только для микроконтроллеров PIC.

Бесплатная графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR от отечественных разработчиков.

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

Мощная среда разработки приложений на языке Паскаль для различных архитектур микроконтроллеров. Программа платная. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

Среда разработки программ на языке Бейсик для микроконтроллеров различных производителей. Программа платная от 199$. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

Программа для создания и отладки кода, написанного на языке программирования BASIC, под PIC-микроконтроллеры. Программа платная 50$. MicroCode Studio – облегченный, бесплатный вариант с ограничением на кол-во строк кода.

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

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

Графическая оболочка для программы AVRdude, включающая в себя простой и функциональный AVR fuse-калькулятор. Freeware.

Графическая оболочка для популярной программы AVRDUDE, использующейся при прошивке микроконтроллеров компании Atmel. Freeware.

Источник

Оцените статью