资料介绍
关于GNU ld和ld脚本
[pic]关于GNU ld和ld脚本
----------------------------------------------------------------------------
----
ld,即GNU的连接工具,用于将各目标文件合并在一起,并重新安排他们的数据以及符号
的引用,常常是程序编译的最后一步。
ld scripts 即ld脚本。ld
脚本的主要目的是要描述怎样将输入文件的各段印象到输出文件中去。它控制输出文件
在内存的布局情况。
----------------------------------------------------------------------------
----
关于VMA ,LMA
每一个可装载的输出段都有两个地址:VMA(Virtual memory address) 和 LMA(Load
memory address)VMA 是输出段运行时的地址,LMA
则是输出段被装载的地址。而这2个地址常常是相同的。在某些情况下二者是有区别的。
比如,一个data段被装载到ROM中,然后在程序启动的时候被拷贝到了RAM中去。(这种
技术常常用在以ROM
为基础的系统中,用来初始化全局变量,而我们的系统的处理方法可能与此类似?)
----------------------------------------------------------------------------
----
关于SECTIONS命令的使用
SECTIONS告诉LD怎样将输入的段印象到输出的段,以及怎样将输出的段装载到内存中去
。这是我们在内存布局中常常要用到的命令。段的基本结构如下:
SECTIONS
{
sections- command
sections- command
...
}
其中的sections-command 可作如下选