программирование avr на ubuntu

Всем привет, вот недавно нашел информацию как из под ubuntu запрограммировать микроконтроллер AVR. Хочу поделится успехами!

Для начал анеобхоидмо установить саму операционную систему Ubuntu, я ставил более менее свежую версию Ubuntu 11.04 скачать можно с официального сайта.

После установки необходимо запустить менеджер пакетов и дополнений, то есть программа управляющая модулями и программами которые установлены на компьютере. Что-то типа "Установка и удаление программ" в Windows.
Необходимо найти три пакета программ:
gcc-avr - компилятор,
avr-libc - библиотеку Си,
avrdude - программа для прошивки микроконтроллера (в народе просто "дудка").

Для магов командной строки все проще:
$sudo apt-get install gcc-avr avr-libc avrdude
Прописываем, выполняем, радуемся.

Создаем папку для наших файлов, в эту папку будем класть файл который необходимо скомпилировать.
К примеру делаем папку /atmega
Папка должна бытьв корневом каталоге!

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

$avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -o /atmega/programma.o /atmega/programma.c

Короткое пояснение:
$avr-gcc - вызов компилятора языка Си
-mmcu=atmega8 - указываем что наш микроконтроллер ATmega8
-DF_CPU=7372800UL - указываем частоту кварцевого генератора (внешний)
-Os -o - указываем оптимизацию кода.

Получаем на выходе файл с расшиением немного непривычным programma.o

Далее необходимо выполнить конвертацию файл в формат прошивки .hex
$avr-objcopy -O ihex /atmega/programma.o /atmega/programma.hex

И прошиваем следующей командой:
$avrdude -c stk500v2 -pm8 -P /dev/ttyUSB0 -U flash:w:/atmega/programma.hex

$avrdude - вызов программы для прошивки микроконтроллера,
stk500v2 - выбираем программатор,
/dev/ttyUSB0 - указываем к какому USB порту он подключен,
flash:w:/atmega/programma.hex - указываем адресс прошивки.