Для работы с микроконтроллерами семейства AVR есть бесплатная среда Atmel Studio. Несмотря на то, что среда включает в себя большое количество примеров исходных кодов, документацию, компилятор, средства отладки, она обладает некоторыми существенными недостатками. Первый и самый большой недостаток Atmel Studio это то, что является расширением MS Visual Studio и запустить её можно только на ОС Windows. Во-вторых, Atmel Studio, как по мне, не очень удобная среда и жрёт очень много ресурсов, также затрудняет создание и сопровождение достаточно сложных проектов с множеством файлов. Из за этого я начал искать альтернативы, такой альтернативой является среда разработки Eclipse.
Eclipse это свободная интегрированная среда разработки модульных кроссплатформенных приложений написана на Java. Развивается и поддерживается Eclipse Foundation. Чтобы среда работала нужно установить JVM. Среда подходит для разработки приложений на языках С/С++, Java, PHP, Python и других. Среда очень гибкая и можно расширить функционал, позволяет установить большое количество различных плагинов и дополнений. В данной статье мы рассмотрим способ настройки Eclipse для работы с 8-битными микроконтроллерами семейства AVR для ОС Windows. С тем же успехом можно настроить и под Linux.
Для настройки нам понадобиться собственно сам Eclipse, утилиты gnu toolchain для сборки проектов, avr-gcc компилятор и avrdude для загрузки hex-файла в память контроллера.
Eclipse C/C++
Установить Eclipse не нужно, достаточно скачать соответствующую версию (Eclipse IDE for C/C++ Developers) с официального сайта и распаковать в нужную директорию, например в E:/eclipse-cpp-neon-3/. Исполняемый файл это eclipse.exe. Но для того что бы программа запустилась, на компьютере должна быть установлена java-машина (JVM). При запуске Eclipse попросит указать путь к рабочей директории (workspace), в этой директории будут храниться все проекты. Сменить workspace можно в любое время, когда Eclipse запущен File->Switch Workspace.
Установка плагина AVR-Eclipse
Плагин AVR-Eclipse нужен для того, чтобы Eclipse мог работать с контроллерами AVR. В Eclipse плагины можно установить двумя способами: on-line, добавив ссылку на репозиторий, или из заранее скаченного архива. Мне удобнее первый вариант его и будем использовать.
- Для установки нового плагина следует выбрать в меню Help->Install New Software…
- Чтобы добавив ссылку на плагин, выбираем Add…
- В открывшемся окне указываем имя Name, к примеру: AVR-Eclipse и путь к к плагину Location: http://avr-eclipse.sourceforge.net/updatesite и жмём OK
- В окне Available Software появляется список плагинов, доступных по указанной ссылке. Ставим галочку напротив AVR Eclipse Plugin, нажимаем Next>
- Нажимаем Next>
- Соглашаемся и жмем Finish
- После установки плагина нужно перезапустить Eclipse Yes
- Узнать, установился ли плагин можно по появившейся на панели инструментов кнопки AVR* со зелёной стрелкой вниз и пункт меню AVR. Эту кнопку мы будем использовать для загрузки hex-файла. Замечание! В некоторых случаях следует переключить интерфейс Eclipse на работу с C/C++. Для этого в правом верхнем углу есть пиктограмма Open Perspective. Следует выбрать C/C++.
Настройка компилятора и утилит сборки
Пакет WinAVR содержит компилятор и утилиты для сборки. Однако WinAVR больше не развивается, а последняя версия вышла ещё в далёком 2010-ом год. Потому рекомендуется взять последний Atmel AVR Toolchain, а утилиты сборки из WinAVR. Если ранее установили Atmel Studio, тогда можете использовать его Toolchain и утилиты, у меня это: C:/Program Files (x86)/Atmel/Studio/7.0/toolchain/avr8/avr8-gnu-toolchain и C:/Program Files (x86)/Atmel/Studio/7.0/shellutils соответственно, а avrdude можете скачать с официального сайта. Также можете скачать все в сборе, Atmel AVR Toolchain + avrdude + shellutils, с нашего сайта. Распаковываем архив avr8-gnu-toolchain.zip в любое понравившееся место, в моём случае это E:/eclipse-cpp-neon-3/avr8-gnu-toolchain/, где находится сам Eclipse.
Теперь следует прописать в Eclipse пути к инструментам. Для этого:
- Заходим в меню Windows->Preferences, выбираем AVR->Paths. У меня среда уже настроена под WinAVR, но нам нужно настроить под Atmel AVR Toolchain.
- Указываем путь к AVR-GCC, для этого выбираем соответствующую строку и нажимаем Edit.
- В окне Change Path for AVR-GCC меняем Path source с System на Custom, а в Custom value указываем путь к AVR-GCC нажимая на Browse…. в моём случае это E:/eclipse-cpp-neon-3/avr8-gnu-toolchain/bin
- Аналогично прописываем путь к GNU make – директории, содержащей файл make.exe: E:/eclipse-cpp-neon-3/avr8-gnu-toolchain/shellutils. Также прописываем путь к AVR Header Files – директории с «avr/io.h»: E:/eclipse-cpp-neon-3/avr8-gnu-toolchain/avr/include. В этом же окне можно указать путь к программатору avrdude: E:/eclipse-cpp-neon-3/avr8-gnu-toolchain/avrdude.
- Сохраняем нажимая OK.
Настройка программатора USBasp
USBasp, пожалуй, самый популярный программатор для микроконтроллеров AVR Atmel. Простой, надёжный и дешёвый программатор. Чтобы работать с ним из Eclipse, для начала нужно его настроить:
- Заходим в меню Windows->Preferences, выбираем AVR->AVRDude
- В Programmer configurations нажимаем на Add…
- В открывшемся окне задаём имя конфигурации, Configuration name, к примеру USBasp, а в Programmer Hardware выбираем USBasp, http://www.fischl.de/usbasp/
- Сохраняем нажимая OK
Создание нового AVR проекта
Самый надёжный способ проверить, всё ли работает нормально, это создать и скомпилировать новый проект. Я предпочитаю C++ вместо обычного C, так как привык к синтаксису, да и можно создавать классы, что тоже очень удобно для меня.
- Создаём новый C++ проект File->New->C++ Project
- В поле Project name пишем имя проекта, а в Project type выбираем AVR Cross Target Application->Empty Project, а в Toolchains — AVR-GCC Toolchain. Жмём Next>
- В окне Select configurations нажимаем на Advanced settings… для настройки проекта
- В AVR->AVRDude находим Programmer configuration и выбираем USBasp, которого настроили ранее
- Также нужно настроить C/C++ билдер. Переходим в C/C++ Build->Settings->Tool Settings и в Additional Tools in Toolchain ставим галочку напротив Generate HEX file for Flash memory, чтобы генерировать HEX файл, который и будет загружен на наш микроконтроллер
- Переходим в AVR Compiller->Oprimization и меняем Optimization Level на Slight Optimizations (-O1). Если не оптимизировать код, тогда самый простой Hello World не поместится на МК
- Тоже самое делаем и в AVR C++ Compiller->Oprimization. Сохраняем и нажимаем Next>
- В AVR Target Hardware Properties выбираем наш МК MCU Type, в моём случае это ATmega16. Также пишем и частоту, MCU Frequency (HZ), к примеру 8000000МГц
- Жмём Finish и проект готов
Создание файла main.cpp
Так как мы создали C++ проект, нам нужно создать .cpp файл. Был бы обычный C проект, тогда расширение файла была бы .c
- Переходим в File->New и выбираем Source file и жмём Next>
- Source Folder в данном случае это наш ранее созданный проект, а Source Name это имя файла, я назвал его main.cpp. Жмём Finish
- Пишем какой-то Led Blinking пример
- Собираем проект: Project->Build Project
- Загружаем HEX файл на наш контроллер AVR->Upload Project to Target Device
- Если программатор UABasp подключен между контроллером и компьютером, тогда вы должны получить примерно такой результат в логах. Также стоит не забывать и о фьюзах.
Launching E:\eclipse-cpp-neon-3\avr8-gnu-toolchain\avrdude\avrdude -pm16 -cusbasp -Uflash:w:Atmega16_blink.hex:a Output: avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9403 (probably m16) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: reading input file "Atmega16_blink.hex" avrdude: input file Atmega16_blink.hex auto detected as Intel Hex avrdude: writing flash (152 bytes): Writing | ################################################## | 100% 0.18s avrdude: 152 bytes of flash written avrdude: verifying flash memory against Atmega16_blink.hex: avrdude: load data flash data from input file Atmega16_blink.hex: avrdude: input file Atmega16_blink.hex auto detected as Intel Hex avrdude: input file Atmega16_blink.hex contains 152 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.13s avrdude: verifying ... avrdude: 152 bytes of flash verified avrdude done. Thank you.
Полезные ссылки
Eclipse IDE for C/C++ Developers
Atmel AVR Toolchain + avrdude + shellutils
AVR Eclipse Plugin Download
Atmel AVR Toolchain
AVRDUDE — AVR Downloader/UploaDEr
WinAVR
металлические пин значки металлические значки на заказ
магазин аккаунтов магазин аккаунтов
маркетплейс аккаунтов соцсетей маркетплейс аккаунтов
услуги по продаже аккаунтов платформа для покупки аккаунтов
Profitable Account Sales Account exchange
Profitable Account Sales Guaranteed Accounts
Account Trading Marketplace for Ready-Made Accounts
Database of Accounts for Sale Account Catalog
guaranteed accounts sell account
account marketplace verified accounts for sale
website for buying accounts find accounts for sale
sell accounts buy and sell accounts
account market account purchase
account trading platform accounts market
account catalog sell accounts
account buying platform account market
account acquisition account buying platform
account acquisition account exchange service
account catalog account selling service
account purchase account sale
verified accounts for sale account exchange
account selling platform https://accounts-market-soc.org
account selling platform account trading service