Шаблон программы

После установки программного обеспечения для кроссплатформной разработки (см. Установка компилятора, 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>