ARM arm-ld链接器的作用
[复制链接]
如果用过arm交叉编译器,一定看过
arm-ld, arm-as, arm-gcc, arm-nm等一系列工具,它们的用途是干什么的呢?
(1)arm-as 用于将 xxx.s 汇编文件编译为 xxx.o 文件
eg : arm-as -o add.o add.s复制代码
(2)在写多文件工程的时候,每个汇编文件被 arm-as工具单独编译为.o文件,c文件用arm-gcc编译
而arm-ld则将所有的xxx.o 文件链接为二进制执行文件,因此称为链接器
有三种可执行文件:一种是.elf,一种是.bin,.hex是一种特殊的可执行文件

linker.png (12.98 KB, 下载次数: 0)
2016-6-6 19:28 上传
链接器有两个作用:
1.符号解析(Symbol Resolution)
2.重定向(Relocating)
下面以汇编文件为例来讲解:
汇编语句的语法如下:
label: instruction @ comment复制代码
label 为标签, @ 后面是注释语句
instruction是执行的指令
一个简单的加法的例子如下:
.text
start: @ Label, not really required
mov r0, #5 @ Load register r0 with the value 5
mov r1, #4 @ Load register r1 with the
ARM链接器深入解析:符号解析与重定位

本文详细介绍了ARM环境下arm-ld链接器的工作原理,包括符号解析和重定位两个关键步骤。通过实例解释了如何处理多文件工程中的标签引用,以及链接器如何合并和放置不同段,确保程序正确执行。
最低0.47元/天 解锁文章
954

被折叠的 条评论
为什么被折叠?



