AVR-GCC: Error: garbage at end of line
AVR-GCC: Error: garbage at end of line
我的堆栈初始化行有问题,因为 avr-gcc returns
LED_Blink.asm:10: Error: garbage at end of line
线上:
ldi r17, low(RAMEND)
ldi r17, high(RAMEND)
我很困惑。我已经定义了 RAMEND。我在这个命令中使用了 avr-gcc:
avr-gcc -x assembler -mmcu=atmega328p LED_Blink.asm
我的汇编代码:
.equ SPL, 0x3d
.equ SPH, 0x3e
.equ RAMEND, 0x8ff
.equ PORTB, 0x05
.equ DDRB, 0x04
.org 0x000000
rjmp main
main:
ldi r17, low(RAMEND)
out SPL, r17
ldi r17, high(RAMEND)
out SPH, r17
ldi r16, 0xff
out DDRB, r16
out PORTB, r16
loop:
ldi r16, 32
rcall outer_loop
cbi PORTB, 5
ldi r16, 32
rcall outer_loop
sbi PORTB, 5
rjmp loop
outer_loop:
clr r24
clr r25
delay_loop:
adiw r24, 1
brne delay_loop
dec r16
brne outer_loop
ret
low
和 high
对 AVR 的 GNU 汇编程序没有任何意义,我想你想使用 lo8
和 hi8
来降低和分别为高字节。
我的堆栈初始化行有问题,因为 avr-gcc returns
LED_Blink.asm:10: Error: garbage at end of line
线上:
ldi r17, low(RAMEND)
ldi r17, high(RAMEND)
我很困惑。我已经定义了 RAMEND。我在这个命令中使用了 avr-gcc:
avr-gcc -x assembler -mmcu=atmega328p LED_Blink.asm
我的汇编代码:
.equ SPL, 0x3d
.equ SPH, 0x3e
.equ RAMEND, 0x8ff
.equ PORTB, 0x05
.equ DDRB, 0x04
.org 0x000000
rjmp main
main:
ldi r17, low(RAMEND)
out SPL, r17
ldi r17, high(RAMEND)
out SPH, r17
ldi r16, 0xff
out DDRB, r16
out PORTB, r16
loop:
ldi r16, 32
rcall outer_loop
cbi PORTB, 5
ldi r16, 32
rcall outer_loop
sbi PORTB, 5
rjmp loop
outer_loop:
clr r24
clr r25
delay_loop:
adiw r24, 1
brne delay_loop
dec r16
brne outer_loop
ret
low
和 high
对 AVR 的 GNU 汇编程序没有任何意义,我想你想使用 lo8
和 hi8
来降低和分别为高字节。