Avr с compiler windows

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

1. ПО для написания и отладки микропрограммного обеспечения

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

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

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

Перечисленные инструменты, как правило, доступны в виде единого программного пакета, который носит название интегрированной среды для проектирования (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. В комплект не входят.
Читайте также:  Установка windows распаковать iso
Тип Наименование
Компилятор Компилятор ассемблера для AVR
Утилита программирования ChipBlasterAVR — универсальная утилита для внутрисистемного программирования

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

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

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

AVR на C — просто?

Введение

Материалы приведенные далее рассчитаны на пользователей знакомых с программированием в целом и языком C (не обязательно) в частности.
В основном излагаемый материал описывает использование микроконтроллеров AVR, особое внимание на ATmega328. Для изучения материалов понадобится Arduino Uno или Arduino Nano 3. Да простят меня ардуино-ненавистники, но в данном случае Arduino буд е т использоваться в качестве макетных плат по доступной цене и с возможность использования без программатора .

1. Подготовка к изучению

Для изучения нам понадобятся:

Стандартные библиотеки C для микроконтроллеров AVR ;

Программа для загрузки микропрограмм в микроконтроллер;

1.1. Среда разработки

При выборе среды разработки можно натолкнутся на «не пробиваемую стену» множества программных оболочек для программирования на разных языках программирования. Но учитывая направление на микроконтроллеры круг поиска сужается до сред разработки адаптированных под конкретный вид микроконтроллеров семейства AVR фирмы Atmel. Кроме того среда разработки язык программирования C.

Из множества вариантов рассмотрим среду разработки С odeBlocks. Будем использовать оригинальную версию С odeBlocks с сайта разработчиков www.codeblocks.org последней версии, на момент написания это версия 16.01. Данная среда разработки интересна наличием версий под популярные операционные системы Linux, Windows и Mac OS.

Вкратце рассмотрим установку под Windows. Скачав файл codeblocks-16.01-setup.exe запускаем его.

Ознакомимся с лицензией и принимаем ее.

Устанавливаем все компоненты без изменений

Путь установки оставляем без изменений.

Пробегают строки установки и появляется предложение запустить программу, соглашаемся. И конечно нажимаем Next в установщике и завершаем установку.

Получаем установленную среду разработки Code::Blocks.

1.2. Стандартные библиотеки C/ C++ для микроконтроллеров AVR

Среда разработки установлена, но для работы необходимо подключить библиотеки для компиляции программ для микроконтроллера. Один из способов это поставить WinAVR. Только зачем, если среда разработки уже выбрана. Возьмем все необходимое с сайта производителя микроконтроллеров семейства AVR.

Понадобится Atmel AVR 8-bit Toolchain так как использовать собираемся ATmega328 а он 8- bit. После скачивания запускаем полученный само распаковываемый архив и получаем папку (вида avr8-gnu-toolchain) со всем необходимым. Куда ее положить?

Запускаем ранее установленный Code::Blocks идем в меню Settings >> Compiler переходим во вкладку Toolchain executables выбираем интересующий нас компилятор из списка Selected compiler это будет GNU GCC Compiler for AVR. Далее смотрим путь по умолчанию для размещения ранее скачанной и распакованной папки.

Читайте также:  Чем лучше всего активировать windows 10

Переименовываем нашу папку как в настройках Code::Blocks и перемещаем по указанному пути.

1.3. Программа для загрузки микропрограмм в микроконтроллер

Теперь все готово для программирования, но не хватает программы для облегчения прошивки микроконтроллера. Для изучения микроконтроллера ATmega328 будем использовать платформу Arduino UNO или Arduino Nano v3. Это дает возможность изучать микроконтроллер без паяльника и программатора. Для Arduino есть хорошая программа ArduinoBuilder и оболочка из проекта CodeBlocks Arduino IDE ( среда разработки Code::Blocks с добавлением библиотек ардуино ). Использовать микроконтроллер без ардуино гораздо интересней поэтому скачиваем только ArduinoBuilder. Его будем использовать для экспериментов с микроконтроллером на плате Arduino. Распаковываем архив, например в корень диска c:\ в папку ну скажем ArduinoBuilder, из нее делаем ссылку на рабочий стол и получаем два ярлыка:

Все программное обеспечение готово. Приступим к «железным» вопросам

1.4. Микроконтроллер

В своих изысканиях будем рассматривать микроконтроллер ATmega328 программы будем писать именно для него. «Знатоки» сразу нас пошлют к DataSheet но это не для нас. Мы пойдем своим путем и будем изучать его анатомию практически — методом «Тыка» : ).

Первое что необходимо, это приобрести минимальное оборудование. Ограничимся для начала покупкой ардуины или аналога. Главное, чтобы на ней был установлен микроконтроллер ATmega328.

Arduino Pro (на ATmega328 );

и конечно клоны от китайских товарищей.

Любой из перечисленных вариантов подойдет с теми или иными ограничениями или изменениями.

Рассмотрим подробнее вариант Arduino Nano v3 . Здесь установлен микроконтроллер ATmega328P, есть возможность подключать через USB, а также существует несколько клонов по приемлемой цене. Описания в интернете можно найти массу, поэтому рассмотрим только схематичное описание найденное на просторах интернет.

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

AVR-GCC 10.1.0 for Windows 32 and 64 bit

This is where I’ll be uploading builds of AVR-GCC for Windows 32 and 64 bit, which will also include Binutils, AVR-LibC, AVRDUDE, Make and GDB. I’ll be trying to keep the builds up to date with the latest tool releases when I can.

The binaries are built from source on a Debian 10 virtual machine with MinGW (GCC 9.1.0 and older were built on an Arch Linux VM), apart from AVRDUDE where the pre-built binaries are obtained from the official download area. Both 32 bit and 64 bit Windows binaries are provided. There’s probably no benefit from using the 64 bit stuff, but all the cool kids are doing it so why not.
A bash script for building AVR-GCC, AVR-Binutils, AVR-LibC and AVR-GDB from source is also provided below, making it super easy to build these tools for yourself.

Included tools

Tool Version
GCC 10.1.0
Binutils 2.34
AVR-LibC SVN with extras
GDB 9.2
AVRDUDE 6.3 (Not included in Linux release)
Make 4.2.1 (Not included in Linux release)
Читайте также:  Wargame для mac os

Downloads

Upgrading the Arduino IDE

Upgrading the Arduino IDE is pretty easy, though there could be some incompatibilities with certain libraries. Only tested with Arduino 1.8.13.

  1. Download and extract one of the downloads above
  2. Navigate to your Arduino IDE folder
  3. Go to [hardware/tools]
  4. Move the [avr] folder somewhere else, like to your desktop (renaming the folder won’t work, Arduino has some auto-detect thing which sometimes gets confused)
  5. Move the extracted folder from earlier to the [tools] folder and rename it to [avr]
  6. Copy [bin/avrdude.exe] and [builtin_tools_versions.txt] files and [etc] folder from the old [avr] folder to the new one
  7. Done! Open up the Arduino IDE, load up the Blink example, upload it to your Arduino and make sure the LED is blinking!

Known Issues

Build Script

This build script will install the required packages, create directories and build the tools from source. This should work on Debian 8+, Ubuntu 16.04+, CentOS 7 and maybe Arch.

Building takes about 1 hour 45 minutes on an Debian Linux virtual machine with 4 cores i5 2500K @ 4GHz and 2GB RAM.

History

2020-06-15
CURRENT RELEASE
AVR-GCC updated to 10.1.0
Binutils updated to 2.34
Added GDB 9.2

2019-09-07
AVR-GCC updated to 9.2.0
AVR-LibC updated to SVN with extras

2019-05-19
AVR-GCC updated to 9.1.0

2019-02-28
AVR-GCC updated to 8.3.0
Binutils updated to 2.32

2018-09-06
AVR-GCC updated to 8.2.0
Binutils updated to 2.31.1

Issues:
GCC 8 and binutils seem to be having some problems when dealing with library archives, you’ll get error messages like “unable to rename ‘core.a’; reason: File exists” when adding to library archives and “file not recognized: file truncated” linker errors.

2018-05-07
AVR-GCC updated to 8.1.0

Issues:
GCC 8 and binutils seem to be having some problems when dealing with library archives, you’ll get error messages like “unable to rename ‘core.a’; reason: File exists” when adding to library archives and “file not recognized: file truncated” linker errors.

2018-03-02
AVR-GCC updated to 7.3.0
Binutils updated to 2.30
Added Linux release

2017-08-22
AVR-GCC updated to 7.2.0
Binutils updated to 2.29

2017-07-09
AVR-GCC 7.1.0 (R3)

2017-07-09
AVR-GCC 7.1.0 (R2)
Issues:
This release was missing libwinpthread-1.dll in a second location

2017-05-23
AVR-GCC 7.1.0 Built
Issues:
This release was missing libwinpthread-1.dll

2016-04-30
AVR-GCC 6.1.0 Built
Issues:
When compiling with -ffunction-sections and any optimization level other than -O0, strings passed to a function will be stored in flash instead of RAM even though PSTR() hasn’t been used.

A work around is to the store the string in a variable then pass that to the function:

[More info here]
Another work around would be to add -fno-merge-constants to the compiler options.

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