Настройка Eclipse для работы с AVR

Шауэрман Александр А. shamrel@yandex.ru

Фирма Atmel для работы со своими микроконтроллерами семейства AVR предлагает бесплатную (freeware) среду Atmel Studio (в настоящий момент актуальна версия 6.2 service pack 1). Несмотря на то, что среда включает в себя большое количество примеров исходных кодов, документацию, компилятор, средства отладки, она обладает некоторыми существенными недостатками. Во-первых, так как Atmel Studio основывается на MS Visual Studio, а по сути, является ее расширением, то запуск ее под операционными системами отличными от Windows в полном объеме проблематичен. Во-вторых, Atmel Studio не умеет работать с make-файлами, что затрудняет создание и сопровождение достаточно сложных проектов с множеством файлов. Это особенно актуально при использовании в проекте встраиваемой операционной системы, например Contiki или FreeRTOS. В связи с этим мы рекомендуем использовать для работы со стендом LESO6 интегрированную среду разработки Eclipse.

Eclipse представляет собой свободную (с открытыми исходными кодами) интегрированную среду разработки. Среда написана на Java и потому работает на различных операционных системах: Windows, Linux, Mac OS. Для работы должна быть установлена java-машина. Среда подходит для разработки приложений на языках С/С++, Java, PHP и других. Модульная структура позволяет установить большое количество различных плагинов и дополнений, тем самым значительно расширить функционал. Однако за универсальность нужно платить, для того чтобы адаптировать среду для конкретной задачи придется выполнить соответствующую настройку. В данной статье мы рассмотрим способ настройки Eclipse для работы с 8-битными микроконтроллерами семейства AVR для операционных систем Windows и Linux.

Нам понадобиться собственно сам Eclipse, для сборки проектов нужны утилиты gnu toolchain, понадобиться компилятор avr-gcc, для загрузки hex-файла в память контроллера будем использовать avrdude. Все это свободно распространяется, доступно для различных операционных систем и имеет открытые исходные коды. В начале рассмотрим процесс сборки для ОС Windows.

Eclipse

Сам Eclipse в установке не нуждается, достаточно скачать соответствующую версию (Eclipse IDE for C/C++ Developers) с официального сайта (регистрация не требуется) и распаковать в нужную директорию, например в C:\Program Files. Исполняемый файл – eclipse.exe. Для удобства запуска можно создать ярлык на рабочем столе. Но для того что бы программа запустилась, на компьютере должна быть установлена java-машина. Если она до сих пор не установлена, то ее можно скачать и установить с сайта www.java.com. При запуске Eclipse попросит указать путь к рабочей директории (workspace), в этой директории будут храниться все проекты. Рекомендуем для каждого пользователя создать отдельную директорию. Сменить workspace можно в любое время, когда Eclipse запущен.

Workspase Launcher

Плагин AVR-Eclipse

Плагин нужен для того, чтобы Eclipse научился работать с контроллерами AVR. Плагин можно установить двумя способами: on-line, добавив в программу ссылку на репозиторий, или из заранее скаченного архива. Как установить плагин on-line рассмотрим в разделе, посвященному Linux, сейчас же покажем как работает второй способ. Получить архив можно на сайте AVR-Eclipse, либо скачать с нашего сайта. Для установики следует выбрать в меню "Help" пункт "Install New Software...".

 

Install New Software

Выбираем "Add...".

Select Software

В открывшемся окне указываем путь к архиву de.innot.avreclipse.p2repository-2.4.2. (Кнопка Archive...).

 

Add Repository

 

Repository archive

В окне "Available Software" появляется список плагинов, содержащихся в выбранном архиве. Ставим галочку напротив "AVR Eclipse Plugin", нажимаем Next.

Install plugin

Отвечаем на все вопросы утвердительно, со всем соглашаемся и жмем Next. Плагин установлен. Узнать, что все прошло успешно можно по появившейся на панели инструментов кнопки AVR* со стрелочкой вниз. Эту кнопку мы будем использовать для загрузки hex-файла в память программ (если проект создан не из готового make-файла).

Eclipse menu AVR

Замечание! В некоторых случаях следует переключить интерфейс Eclipse на работу с C/C++. Для этого в правом верхнем углу есть пиктограмма "Open Perspective". Следует выбрать C/C++.

Компилятор и утилиты сборки

И компилятор и утилиты для сборки можно получить, установив пакет WinAVR. Однако проект больше не развивается, и последняя версия (2010 год) включает в себя совсем не новый gcc-4.3.3. Потому рекомендуется взять последний Atmel AVR Toolchain с www.atmel.com, а утилиты сборки из WinAVR. Или скачать все в сборе с нашего сайта. Распаковываем архив avr8-gnu-toolchain.zip в любое понравившееся место, в примере это C:\avr_tools, а можно в папочку с самим Eclipse. В результате должна появиться директория avr8-gnu-toolchain.

Теперь следует прописать в Eclipse пути к инструментам. Для этого заходим в меню Windows->Preferences, выбираем AVR->Paths. Указываем путь к AVR-GCC, для этого выбираем соответствующую строку, нажимаем Edit.

 

Patch Settings for AVR Eclipse Plugin

Path source устанавливаем в Custom, жмем Browse.., указываем путь к директории с файлом avr-gcc.exe. В нашем примере это "C:\avr_tools\avr8-gnu-toolchain\bin".

Change Patch for AVR-GCC

 

Browse Patch for AVR-GCC

Аналогично прописываем путь к GNU make – директории, содержащей файл make.exe. Относительно avr8-gnu-toolchain это utils\bin. Если используете WinAVR непосредственно, то utils\bin можно взять оттуда. Для нашего примера это "C:\avr_tools\avr8-gnu-toolchain\utils\bin". Также прописываем путь к AVR Header Files – директории с "avr/io.h". Относительно avr8-gnu-toolchain это "avr\include". В этом же окне можно указать путь к программатору avrdude, более подробно о программаторе, и работе с ним поговорим в отдельной статье.

Browse Patch for AVR-GCC

На этом настройку среды разработки будем считать завершенным.

Linux AVR Eclipse

Развертывание системы на базе операционной системе Linux покажем на примере Ubuntu 14.04. В различных ОС процесс может несколько отличаться, однако общая последовательность действий остается аналогичной. Следует заметить, что в приведенном примере установка осуществляется при наличии активного соединения Internet, совокупный объем принятых данных составит порядка 200-300 Мбайт. Для установки понадобятся права суперпользователя.

1. Устанавливаем Eclipse:

sudo apt-get install eclipse 

2. Устанавливаем поддержку С/С++:

sudo apt-get install eclipse-cdt

3. Устанавливаем компилятор AVR-GCC, ассемблер компоновщик binutils-avr, стандартную библиотеку для С под AVR:

sudo apt-get install gcc-avr 
sudo apt-get install binutils-avr 
sudo apt-get install avr-libc

Или все одной командой:

sudo apt-get install gcc-avr binutils-avr avr-libc

4. Запускаем Eclipse, закрываем вкладку Welcome. В меню Help выбираем "Install New Software...". Добавляем новый репозиторий http://avr-eclipse.sourceforge.net/updatesite/ . Устанавливаем галочку напротив "AVR Eclipse Plugin", жмем Next. Отвечаем на вопросы утвердительно. Плагин устанавливается. После перезапуска Eclipse плагин будет активен.

Приложения для загрузки

Eclipse IDE for C/C++ Developers

AVR-Eclipse. Плагин

Набор утилит для Windows. (avr8-gnu-toolchain).

Atmel AVR Toolchain

WinAVR


 

9 января 2015

Комментарии:



При использовании линукса, все пути в Windows->Preferences->AVR->Paths появляются автоматически. Пункт "Компилятор и утилиты сборки" пропускаем.

Кроме того, avr-gcc можно использовать в качестве кросс-компилятора, тем более, если в проекте будет кастомный мэйкфайл, то и пункт с установкой плагина не нужен. Дудку цепляем, через внешний тулз, плагин тоже не нужен. И того, развертывание системы под туже убунту всего одна строка:

sudo apt-get install eclipse-cdt gcc-avr binutils-avr avr-libc

p.s.: как подсветить синтаксис?

Согласен, можно. Но с плагином проще, а главное быстрее создавать "одноразовые" проекты. Это важно в лабораторном практикуме. Если ты начинаешь серьезный проект, то да, скорее всего сделаешь свой makefile и будешь его вести длительное время, если же тебе за одну пару нужно "накидать" пару тройку проектов, чтоб проверить как работают светодиоды, то проще воспользоваться плагином.

P.S.: <pre language="bash">, где "bash" -- требуемый язык, по умолчанию стоит Си. Да, нужно перейти в режим редактирования HTML, кнопка "Источник".

Аватар пользователя Vladimir

Приветствую. Благодарю за статью, все просто и понятно. Хотел узнать где вы взяли линковщик который в архиве Набор утилит для Windows.? Я скачал послелдний тулчейн от атмела (3.5) там линкера нет. Вин авр уже стар и на вин 8.1 при запуске из эклипса выдает ошибку и собирать не хочет. Это дело решается обновлением дллки msys-1.0.dll. Но хотелось бы не городить костыли с заменой одной дллки, а скачать полный набор утилит. Или в данном случае подойдет обычный GNU make чего-то вроде avr-make не нужно?

В архиве старый линковщик из WinAVR. Да, это беда с WinAVR. К сожалению, мы на 8-ке еще не тестировали и с проблемой не столкнулись.

По идее, обычный GNU make должен собирать проект. Буду благодарен, если отпишетесь о результатах.

Аватар пользователя Vladimir

Все верно, собирает. Можно заменить WinAVR на Atmel AVR toolchain+GNU make (msys)+AvrDude, только в папку с дудкой нужно закинуть еще библиотеку libusb0.dll. В связи с этим задумался как вообще обойтись без плагина, ибо он тоже судя по всему заброшен. Даже если создавать по с готовым мэйкфайлом не пойму как подключить тулчейн авровский.(

Если свой makefile, то и плагин, собственно, ну нужен. Можно попробывать создать проект с коросскомпиляцией, но в качестве кросскомпилятора прописать avr-gcc.
А так, Атмел ведет к тому, чтоб ее студио использовали. Для меня это не приемлемо, так как сам я с AVR работаю под Ubuntu. В линуксе проще, все можно собирать из командной строки. Eclipse использую только в качестве продвинутого текстового редактора с хорошим индексом.

Орфографическая ошибка в тексте:
Чтобы сообщить об ошибке автору, нажмите кнопку "Отправить сообщение об ошибке". Вы также можете отправить свой комментарий.