arm-linux-gcc .s 和 .S 的区别 !
unix/linux 对 大小写敏感:
.s 操作 :汇编
.S 操作 : cpp + 汇编
eg:
/* start.s */
#define rTEXT 0x12345678
LDR R0,=rTEXT
....
# arm-linux-gcc -g -c -nostdlib start.s -o start.o
# nm -u start.o
rTEXT
# arm-linux-objdump -S -t start.o > start.l
# cat start.i | grep ''R0"
LDR R0,【PC,#0】
经典错误:
arm-linux-gcc 将.s 文件误认为cpp处理后的文件(不忽略文件类型),故而将 rTEXT 看作为标号,arm-linux-ld 的时候理所当然报 undefined reference ....
只要将 .s 改名为 .S即可!!
# mv start.s start.S
# .....
即可

浙公网安备 33010602011771号