| 
 
高级会员 
 
	积分555金钱555 注册时间2015-6-11在线时间66 小时 | 
 
10金钱 
| makefile内容如下: 
 #cc := arm-none-linux-gnueabihf-gcc
 #ld := arm-none-linux-gnueabihf-ld
 #cp := arm-none-linux-gnueabihf-objcopy
 #dm := arm-none-linux-gnueabihf-objdump
 
 BIN.bin : main.o start.o
 arm-none-linux-gnueabihf-as -c -o start.o start.S
 arm-none-linux-gnueabihf-gcc -c -o main.o main.c
 arm-none-linux-gnueabihf-ld -Ttext 0x2FFC2500 start.o main.o -o ELF
 arm-none-linux-gnueabihf-objcopy -O binary -S ELF BIN.bin
 arm-none-linux-gnueabihf-objdump -D -m arm ELF > asm.txt
 stm32image -s BIN.bin -d BIN.stm32 -l 0x2FFC2500 -e 0x2FFC2500
 
 clean:
 rm -f *.o BIN.stm32 ELF BIN.bin asm.txt
 
 
 直接make,回报如下错误
 cc    -c -o main.o main.c
 cc    -c -o start.o start.S
 start.S: Assembler messages:
 start.S:4: 错误: no such instruction: `ldr sp,=0x30000000@设置堆栈'
 start.S:6: 错误: no such instruction: `bl main@调用C程序中的main函数'
 start.S:8: 错误: no such instruction: `b halt_loop'
 make: *** [<内置>:start.o] 错误 1
 
 
 如果先编译start.S(arm-none-linux-gnueabihf-gcc -c -o start.o start.S),然后mkae就没问题。
 
 有没有大神知道什么原因?
 
 start.S内容如下:
 
 .text
 .global _start
 _start:
 ldr     sp, =0x30000000     @ 设置堆栈
 
 bl      main                @ 调用C程序中的main函数
 halt_loop:
 b       halt_loop
 
 
 
 | 
 
最佳答案
查看完整内容[请看2#楼] make之前export CC=arm-none-linux-gnueabihf-gcc就可以了。默认使用gcc,X86所以提示no such instruction |