A. arm-linux-gcc
这里只简单介绍该命令的使用方法,详细资料可详读参考资料中的《嵌入式LINUX应用开发完全手册》第3章。
-c 对源文件进行预处理、编译、汇编,但不做链接,生成中间OBJ文件,通常以.o结尾。
-g 添加调试信息
-o 指定输出文件。如果不指定-o filename 选项,默认输出为a.out文件。
B. arm-linux-ld
-Ttext startaddr
-Tdada startaddr
-Tbss startaddr
其中-T选项用来指定代码段、数据段、BSS段的起始地址。此外,还可以用来指定的链接脚本。
知识点:
可执行程序是由代码段、数据段、BSS段组成的。
数据段:存放的是初始化的全局变量和静态变量。
BSS段:存放的是未初始化的全局变量和静态变量。
C. arm-linux-objcopy
用于将一个目标文件复制到另一个文件内,可以使用不同于源文件的格式输出到目的文件。常用于格式转化。
-O 用于指定输出的文件格式。如二进制 –O binary
-I 用于指定源文件的格式
-S 不从源文件中复制重定位信息和符号信息到目标文件
D. arm-linux-objdump
用于显示二进制文件住处。常用于进行反汇编,方便调试。
-D 反汇编所有段
-m 指定反汇编目标文件所使用的架构,如 –m arm 指定为ARM体系架构。
-b 指定输入文件的格式,这不是必须的,arm-linux-objdump能自动识别多种格式。
Makefile
请大家参考《GNU makefile 手册》。
目标(target)……. : 信赖(prerequiries)…
:命令(command)
这里需要注意的是命令前面一定要使用TAB键,不能用空格。请参照后面的实例进行学习,看手册不要看得太多,要边学边用,这样才会达到最好的效果。