Advertisement

014 代码重位(第3次)---LDs脚本解析

阅读量:

在上一篇文章的基础上继续进行说明。

在引入链接脚本lds之后,本文将重点阐述lds文件内部配置内容的具体设置方式。

首先,我们来观察链接脚本的模板结构:(依旧采用韦东山老师教学中所使用的示意图)

在lds文件中,我们可以任意设定*.o文件的加载地址。同时,还能明确指定各文件内容的加载顺序,例如先加载某部分内容,再加载其他内容等。模板中涉及的region、BLOCK(align)、NOLOAD等带有横线标记的项通常无需使用。其中secname表示段名称,start代表起始地址,即运行时所使用的地址。Iaddr指的是加载地址(即bin文件被加载到CPU后实际存储的位置)。若脚本中未显式写出AT(laddr),则默认情况下加载地址与运行地址保持一致。

所以只有当运行地址和加载地址不同的时候才需要重定位。

接下来,我们将依据这一模板对具体案例进行详细解析:

.text 段与 .ro

全部评论 (0)

还没有任何评论哟~