Я потратил много времени на настройку системы разработки AVR с помощью полной цепочки инструментов GCC (все являются самой последней стабильной версией), и я решил большинство проблем с ней, кроме одной.
Этот следующий код дает мне ошибку, которую я просто не получаю. В руководстве по сборке AVR указано, что инструкция sbi может принимать 0-7 в качестве константного выражения, но это все равно вызывает ошибку. Кто-нибудь может пролить свет на то, почему это происходит, пожалуйста?
#ifndef __AVR_ATmega168__
#define __AVR_ATmega168__
#endif
#include <avr/io.h>
rjmp Init
Init:
ser r16
out DDRB, r16
out DDRD, r16
clr r16
out PORTB, r16
out PORTD, r16
Start:
sbi PORTB, 0
rjmp Start
Строка, о которой идет речь, sbi PORTB, 0.
Скомпилировано / собрано с:
avr-gcc ledon.S -mmcu = atmega168