下面这段汇编代码,相信很多
ARM学者都跑过,也相信很多大牛都遇到过这个问题,arm-linux-ld的时候提示arm-linux-ld: warning: cannot find entry symbol _start; defaul
ting to 00000000,下面是汇编代码,很简单:
.text
.global _start
_start:
LDR R0, =0x56000010
MOV R1, #0x00000400
STR R1, [R0]
LDR R0, =0x56000014
MOV R1, #0x20
STR R1, [R0]
MAIN_LOOP:
B MAIN_LOOP
makefike如下:
led_on.bin: led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o
make的时候编译提示如下:
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00000000
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
相信很多人都遇到过,百度了下,原因是没有找到 _start的入口,今天看了下 _start的源码,功力尚浅,无法理解,所以应该不需要构造 _start这个函数就可以解决,应该有其他方法,还请高手赐教,谢谢!
一周热门 更多>