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

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Аватара пользователя
Сообщения: 3
Зарегистрирован: Пт июл 26, 2013 15:32:21
Откуда: Чернигов

Сообщение Castiel »

Здравствуйте форумчане.
Решил хоть как-то слепить информацию о программировании AVR в Linux.
Так сказать показать путь который я прошел со своей Убунтой 8)

1. Язык программирования
Языком программирования был выбран язык си. С ASM пока не особо дружу.
Использовал компилятор GNU Complier Collection (GCC).

Вот необходимые пакеты для установки:
gcc-avr - это та часть мощной GNU Complier Collection (GCC), которая будет осуществлять кросс-компиляцию для целевой архитектуры микроконтроллеров AVR.
binutils-avr - ассемблер, компоновщик и некоторые полезные утилиты.
avr-libc - стандартная библиотека Си для Atmel AVR.
avrdude - утилита для работы с программаторами.
Это необходимый минимум для создания приложений для AVR и прошивки микроконтроллеров. Для отладки пригодятся следующие пакеты:
gdb-avr - отладчик для AVR.
avarice - интерфейс между avr-gdb и AVR JTAG ICE.
simulavr - симулятор Atmel AVR.

Устанавливаем все пакеты одним махом)
sudo apt-get install gcc-avr binutils-avr avr-libc avrdude gdb-avr avarice simulavr

2. Среда разработки
Средой разработки выбрана Eclipse

Изображение

Открываем любимый терминал и копипастим строчку
sudo apt-get install eclipse eclipse-cdt

Теперь у нас есть среда разработки, но для работы с нашим камнем нужен плагин AVR Eclipse Plugin
Запускаем нашу среду разработки Выбираем Хелп->Установка нового софта->Копипастим ссылку ниже->Жмем добавить.
http://avr-eclipse.sourceforge.net/updatesite/
Выбираем AVR Eclipse Plugin и жмем далее.

Изображение

Собственно теперь мы можем создавать проект, там выбираем камень и частоту.

Изображение

Можно прошивать прямо из Eclipse, но мне удобней отдельно.

3. Программатор
Программатором был выбран самый банальный USBasp
Он простой и для USB, так что паяем :solder:
Печатку и прошивку и полезности брал здесь.
Получаем такую штуку

Изображение

Дрова уже сидят в ОС, так что заморачиваться не нужно.
Если что не так :cry: вот это может помочь.

Теперь мы можем зашить простую программу в камень
Используем avrdude.
sudo avrdude -c usbasp -p t13 -U flash:w:Tiny.hex
где:
usbasp - это наш программатор (вводим avrdude -c ? чтобы узнать с какими программаторами мы можем работать, аналогично можно посмотреть камни)
t13 - наш камень (В даном случае Тинька13)
Tiny.hex - Файл прошивки

4. Прошиватор :))
Терминал это гуд, но иногда нужен и графический интерфейс.
Для avrdude есть такая замечательная программа AVR8 Burn-O-Mat
Скачиваем с сайта и ставим. Если возникнет косяк с установкой, то следует разобрать пакет и исправить номер версии, ну у собрать обратно.
Запускаем настройки.

Изображение

В настройках выбираем путь к Аврчуваку и к его конфигу. У меня эти пути такие
/usr/bin/avrdude
/etc/avrdude.conf
Далее выбираем программатор и порт:
usbasp(USBasp,http://...)
Можно добавить дополнительние опции в поле additional options.
Соглашаемся. Теперь можно что-то и залить))

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

Изображение

Если пишет что устройство не отвечает, проверьте чтобы все было подключено.
Для настройки фьюзов нажимаем кнопку Fuses настраиваем и записываем.
Не забываем проверить инверсные или нет!!!

Изображение

На этом собственно все. Удачи в нашем нелегком деле :beer:
Последний раз редактировалось Castiel Пт июл 26, 2013 20:59:11, всего редактировалось 1 раз.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

До кучи для openSUSE.
Подключаем репозитарий для соответствующей версии дистрибутива отсюда (или с зеркала)
http://download.opensuse.org/repositori ... hain:/avr/
Там есть avrice, avr-gcc (разных версий), avr-gdb, avr-binutils, avr-insight, avr-libc, simulavr, avrdude, uisp и даже arduino.

Eclipse ставил вот отсюда http://www.eclipse.org/downloads/
Распаковал в /opt , поправил права и всё.
Установка дополнения для AVR так же как описано выше.

По поводу ассемблера. В составе пакета avr-gcc есть avr-as, это GNU ассемблер для AVR (компилятор из командной строки).

Если используете программаторы на COM-порту, то чтобы не запускать avrdude из под root-а добавьте своего пользователя в группу dialout. Для программатора на LPT-порту пользователя надо добавить в группу lp. Не забудьте выйти и зайти в систему после добавления в группу, перезапустить терминал не достаточно, надо завершить сеанс и зайти заново.

Как-то так. :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Сообщение phenomen »

Castiel писал(а):Открываем любимый терминал и копипастим строчку
sudo apt-get install eclipse eclipse-cdt
Это не очень удачный способ установить еклипс на убунту.
В ее репозиториях старая версия.

Тут хорошо описан процесс установки свежей версии.
Если кто будет ставить так, учтите, что есть проблемма с иконкой. Лечится изменением ее адреса Icon=/opt/eclipse/icon.xpm в файле /usr/share/applications/eclipse.desktop. На какой менять - не помню... :oops:
Вместо nano приятней использовать gedit.
Ну и не забыть поменять eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz на скачанный.

А вообще - Молодец!!!
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Чт фев 16, 2012 19:00:11

Сообщение zöner »

еще один вариант, попроще: http://playground.arduino.cc/learning/linux
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Сообщение mrFox »

программирование XMega:
программатор avrdude
железо - любой прошрамматор из темы "AVRISP mkII новый клон (поддерживает XMEGA)" у которого выведенн PDI
команда
sudo /usr/bin/avrdude -c avrispmkii -p x256a3 -P usb -e -U flash:w:./Release/test_xmega.hex

программирование STM32 по USART
программатор stm32flash
железо - преобразователь USB->RS232
команда
sudo ../stm32flash -w ./Release/test_stm32.hex -v -b 115200 /dev/ttyUSB0
Реклама
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Сообщение xVekx »

Вот кстати интересный вопрос, есть программатор STK600, как в линуксе можно управлять его задающим генератором, AREF0, AREF1 ? :(
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

STK600 Communication Protocol - Как-то управлять можно.
А есть ли готовая программка - не знаю. Может кто-то другой подскажет.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Ответить

Вернуться в «AVR»