预编译:汇编 .s 文件 -> .o文件
arm-linux-gcc -c -o led_on.o led_on.S
arm-linux-gcc 交叉编译工具,是在x86平台编译arm平台代码的工具
-c 预编译
-o led_on.o 参数 -o 代表输出文件(out put) 后面跟输出文件名
led_on.S 是汇编语言源码文件
链接文件:.o 文件 --> .elf 文件
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-ld 链接文件,是在x86平台编译arm平台代码的工具
-Ttext 0 设置源码里 text 段,加载到内存(RAM)0地址运行。
0 实际是 0x0000的简写,因为是 0 ,人和机器都不会产生歧义,就不区分是几进制了。
注意:如果非0则不能用这样的简写。
led_on.o 上一步预编译好的 .o 文件
-o led_on.elf 参数 -o 代表输出文件(out put) 后面跟输出文件名
生成机器可运行的二进制文件:
arm-linux-objcopy -o binary -S led_on.elf led_on.bin
arm-linux-objcopy 编译文件,是在x86平台编译arm平台代码的工具
-O binary 指定生成二进制文件,-O是大写。
-S led_on.elf 指定上一步的链接文件
led_on.bin 输出机器可执行的文件
来源参考:
B站《韦东山_嵌入式Linux_第一期ARM裸机实战视频教程_免费试看版》
https://blog.csdn.net/weixin_34332352/article/details/116929868
标签:文件,led,交叉,汇编语言,elf,编译,linux,arm From: https://www.cnblogs.com/wutou/p/17064920.html