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