29 января 2014 г.

Программирование AVR на языке Си используя консольныме программы

Ubuntu 9.04. Решил я попробовать в ней программировать контроллеры AVR на языке Си.
На просторах интернета везде советуют ставить Eclipse или KontrollerLab, но это не наш метод. Мы будем работать из командной строки.


Устанавливаем  gcc-avr, avr-libc, avrdude.
$sudo apt-get install gcc-avr avr-libc avrdude

Создадим в корне системы папочку под названием AVR (путь к папке: /AVR). В качестве редактора я использовал gedit. В нем напишем свой код, например такой:

#include
#include
#include
int main(void)
{
DDRx=0xff;
while (1)
{
PORTx=0xff;
_delay_ms(100);
PORTx=0x00;
_delay_ms(100);
}
}


Сохраняем наш текст с расширением main.c в папочке AVR (путь к файлу: /AVR/main.c).


Компиляция кода

Запустим в терминале:
avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -o /AVR/main.o /AVR/main.c

avr-gcc - компилятор,
-mmcu=atmega8 - наш контроллер atmega8,
-DF_CPU=тактовая частота в Гц,
-Os  -Оптимизатор кода,
-o /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.

Наша прошивка готова к заливке в микроконтроллер.

Для этого нам понадобится программатор. Использовать будем программатор stk500v2 by Petka.

Откроем терминал:
avrdude -c stk500v2 -pm8 -P /dev/ttyUSB0 -U flash:w:/AVR/main.hex

Скриншот терминала
Заливка программы в контроллер

В итоге все получилось!

____
http://cxem.net/mc/mc44.php

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

Отправить комментарий