Поставил я себе такую ОС - Ubuntu 9.04. Конечно же особо в ней в игрушки не поиграешь годится она, в основном, только для работы.PНу и решил я попробовать в ней программировать контроллеры AVR.
На просторах интернета, в принципе, достаточно много всякой всячины которая поможет в освоении программирования AVR под Linux.
Но как обычно я столкнулся с тем, что много всего ну ничего толком. Везде советуют ставить Eclipse или KontrollerLab (как оно меня достало).
Ну вы конечно же догадались, что что-то у меня с ними пошло не так как хотелось бы. В общем методом догадок и высокоинтеллектуального тыка я стал экспериментировать. И вот до чего я дошел...
Открываем менеджер пакетов Sinaptic и в поиске пишем gcc-avr. Отмечаем для установки gcc-avr, avr-libc, avrdude.
Можно конечно же и так:
$sudo apt-get install gcc-avr avr-libc avrdude
Ну для старта все что нужно вроде бы установили.
Далее создадим в корне системы папочку под названием AVR (путь к папке: /AVR)
В качестве редактора можно использовать nano (в терминале прописываем nano),
но я пользовался обычным текстовым редактором gedit (в терминале прописываем $sudo gedit)
В нем напишем свой код ну например:
Долго искал нужную строку, в итоге взял ее просто из WinAvr :).
avr-gcc - компилятор, -mmcu=наш контроллер(сейчас atmega8), -DF_CPU=тактовая частота в Гц, -Os-Оптимизатор кода, -o-OUT, /AVR/main.o-выходной файл с расширением .o который получим из .c, /AVR/main.c -наш си файл.
Не забываем работать под root иначе система не пустит.
Enter и если зайдем в наш каталог /AVR то увидим файлик с расширением .o.
Далее в терминале (он же консоль) введем: $avr-objcopy -O ihex /AVR/main.o /AVR/main.hex
Ну долго объяснять не буду просто скажу, что перегоняем наш файл main из main.o в main.hex.
Ну вот наша прошивка готова к заливке в нашу ATmega8.
Нам понадобится конечно же программатор.
Использовать будем программатор stk500v2 by Petka (Работает просто отлично заливает мгновенно, не отваливается от порта, правда использовал я вместо FT232 CP2102. Огромное спасибо за схемку и прошивки.)
Откроем терминал и запустим утилиту avrdude которая будет у нас работать под консолью: $avrdude -c stk500v2 -pm8 -P /dev/ttyUSB0 -U flash:w:/AVR/main.hex
В итоге все получилось!
Конечно же программу залил другую и обьем ее составил 5кБ, но заливалось это все меньше 4-х секунд.
Как известно, для avrdude существуют и GUI оболочки, но это уже совсем другая история которую я расскажу в другой статье.:)