Работа с программатором от Prottoss в Linux
Альтернативные прошивки для AVR910 by PROTTOSS, AVR-Doper, USBasp
Arduino – это очень популярная платформа для разработки устройств на базе микроконтроллеров AVR (в разных моделях встречаются микроконтроллеры ATMega328P, ATmega32U4, ATtiny85 и другие).
Типичный набор инструментов для разработки программ на языке C для микроконтроллеров семейства AVR включает следующее:
В операционной системе Debian GNU/Linux всё это есть в официальных репозиториях, поэтому установка стандартна:
sudo apt-get install gcc-avr avr-libc avrdude
Для того, чтобы загрузить собственную программу в микроконтроллер, необходимо:
1. Написать программу на языке C
2. Скомпилировать её командой
avr-gcc -g -Os -mmcu=atmega16 program.c -o program.bin
Здесь в параметре -mmcu
указывается модель микроконтроллера. Список допустимых значений этого параметра можно узнать, выполнив avr-gcc –target-help
3. Сконвертировать в HEX-файл, подходящий для программатора:
avr-objcopy -j .text -j .data -O ihex program.bin programk.hex
4. Записать в микроконтроллер:
avrdude -c avr910 -P /dev/ttyACM0 -p m16 -U flash:w:program.hex:i -U lfuse:w:0xee:m -U hfuse:w:0xd9:m
Здесь параметры обозначают следующее:
-c avr910
– модель программатора
-P /dev/ttyACM0
– последовательный порт, через который подключён программатор
-p m16
– модель микроконтроллера ATMega16
Эта команда записывает в микроконтроллер саму программу в HEX-формате (program.hex
) и т.н. FUSE-биты, состоящие из младшего байта (lfuse
) и старшего байта (hfuse
). FUSE-биты1) устанавливают режим работы микроконтроллера, поэтому их можно записать при первом программировании, а затем изменять только основную программу.