Программирование AVR в Linux

Создано 22.06.2018 13:14, автор SergSXM

Основная моя деятельность связана с веб-разработкой, поэтому года 4 назад я полностью пересел на Linux. Все же иногда, в качестве хобби, приходится работать с микроконтроллерами. Итак, какие же инструменты использовать для работы с AVR?

На данный момент я использую Xubuntu 16.04, соответственно всё проверялось именно там.

В качестве IDE удобно использовать Eclipse с плагином для AVR. Первым делом установим Eclipse:

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

После этого открываем Eclipse и устанавливаем плагин для AVR. Для этого открываем в меню Help - Install New Software. В открывшемся окне в поле Work with вводим адрес http://avr-eclipse.sourceforge.net/updatesite/ и выбираем AVR eclipse plugin:

Нажимаем Next, отвечаем на вопросы о сертификате утвердительно. После окончания установки и перезапуска IDE плагин будет активен. Теперь можно создавать проекты для AVR.

Следующая проблема, с которой я столкнулся, это запуск программатора AVR910 (STK500-compatible).

Для начала установим avrdude (программа для прошивки МК):

sudo apt-get install avrdude

AVR910 содержит USB-RS232 преобразователь, поэтому для начала нужно определить, какой порт в системе появляется при подключении программатора по USB. Для этого выполняем команду ls /dev до и после подключения программатора. Порт, который появится после подключения это и есть нужный порт. У меня это /dev/ttyACM0:

Настраиваем Eclipse для работы с программатором. Для этого открываем в меню WindowPreferences. Открываем вкладку AVRAVRDude, нажимаем Add. В появившемся окне выбираем Programmer Hardware: Atmel STK500, в поле Override default port (-P) вводим найденный порт: /dev/ttyACM0.

Возможно также вам захочется вынести кнопку прошивки на тулбар для быстрого доступа. Теперь для каждого проекта в свойствах вы можете указать нужные фьюзы и другие параметры прошивки.

У некоторых на этом этапе прошивка будет работать нормально, но не у меня. При попытке прошивки появляется сообщение /dev/ttyACM0 Permissions denied. Так как я прошиваю нечасто, то просто после подключения программатора в консоли ввожу команду:

sudo chmod 777 /dev/ttyACM0

Способ более искусный — добавить пользователя в группу dialout, которой принадлежат порты (в некоторых дистрибутивах не работает) :

sudo adduser [ваш логин пользователя] dialout

Теперь можно попробовать написать свою первую программу для AVR и прошить контроллер! Удачи!