Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія Наступна ревізія Both sides next revision | ||
microcontrollers [2015/06/21 00:08] wombat USBasp |
microcontrollers [2015/06/28 18:39] wombat [Последовательность действий] avr-examples link |
||
---|---|---|---|
Рядок 21: | Рядок 21: | ||
+ | ===== Программное обеспечение ===== | ||
+ | |||
+ | Типичный набор инструментов для разработки программ на языке C для микроконтроллеров семейства AVR включает следующее: | ||
+ | |||
+ | * Компилятор avr-gcc | ||
+ | * Библиотеку C для AVR -- avr-libc | ||
+ | * Программатор avrdude | ||
+ | |||
+ | В операционной системе Debian GNU/Linux всё это есть в официальных репозиториях, поэтому установка стандартна: | ||
+ | |||
+ | sudo apt-get install gcc-avr avr-libc avrdude | ||
+ | |||
+ | ===== Последовательность действий ===== | ||
+ | |||
+ | Для того, чтобы загрузить собственную программу в микроконтроллер, необходимо: | ||
+ | |||
+ | **1.** [[avr-examples|Написать программу]] на языке 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-биты((Существуют удобные калькуляторы FUSE-битов для разных микроконтроллеров -- [[http://www.engbedded.com/fusecalc/ | пример]])) устанавливают режим работы микроконтроллера, поэтому их можно записать при первом программировании, а затем изменять только основную программу. | ||