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
# .....
即可
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。