Шаблон программы
После установки программного обеспечения для кроссплатформной разработки (см. Установка компилятора, avr-libc и binutils) можно приступать к написанию первой программы.
Простейшей программой будет программа, которая ничего не делает -- так называемый шаблон программы.
.file "empty.S"
.text
.global main
main:
1: ; Program init and uC peripherals setup
2: ; Endless loop
rjmp 2b
.global __vector_default
__vector_default:
reti
В программе определена точка входа программы -- глобальная метка main, пустая секция инициализации программы и бесконечный цикл. Кроме этого, определён обработчик прерывания по умолчанию __vector_default, эта метка также должна быть объявлена глобальной.
Сохраним шаблон программы в файл с названием empty.S и скомпилируем его командой:
avr-gcc --mmcu=atmega16 -o empty.elf empty.S
Создадим файл прошивки формата Intel Hex:
avr-objdump -O ihex empty.elf empty.hex
Просмотрим дизассемблерный листинг исполняемого файла:
avr-objdump -d empty.elf
Автор: Андрей Шаройко <vanyamboe@gmail.com>