错误001:
从上图画红线部分可知错误是:arm-linux-gcc -o &@ start.S -c
正确写法:arm-linux-gcc -o $@ start.S -c
在Makefile文件中:buzzer.bin: start.o main.o buzzer.o
buzzer.bin: start.o main.o buzzer.o arm-linux-ld -Ttext 0x20000000 -o buzzer.elf $^ arm-linux-objcopy -O binary buzzer.elf buzzer.bin arm-linux-objdump -D buzzer.elf > buzzer_elf.dis%.o : %.S #arm-linux-gcc -o &@ $< -c //错在这 arm-linux-gcc -o $@ $< -c%.o : %.c arm-linux-gcc -o $@ $< -cclean: rm *.o *.elf *.bin *dis *.exe -f
错误002:
led-buzzer-button裸机程序开发时:使汇编与C语言汇合编程时,程序能编译成功,当下载到mini210开发板上时,蜂鸣器不响,led也也不点亮;
原因是:设置堆栈地址有问题,代码如下:
.global _start
_start: //关闭看门狗 ldr r0, =0xE2700000 //0xE270000 mov r1, #0 str r1, [r0] //设置栈,以便调用c函数 ldr sp, =0xD0037D80 //=0x40000000//栈地址0x40000000可能已经被占用,所以改成0xD0037D80
//调用main bl mainhalt: b halt