014 代码重位(第3次)---LDs脚本解析
发布时间
阅读量:
阅读量
在上一篇文章的基础上继续进行说明。
在引入链接脚本lds之后,本文将重点阐述lds文件内部配置内容的具体设置方式。
首先,我们来观察链接脚本的模板结构:(依旧采用韦东山老师教学中所使用的示意图)

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

.text 段与 .ro
全部评论 (0)
还没有任何评论哟~
