一、链接脚本的解析
注意:
① 链接脚本中首先放所有程序的代码段text,那么这些程序的代码段按照什么样的顺序排列呢?
在Makefile中有这些程序的排序
② 这里的data数据段设置了加载地址0x800,表明在生成的bin文件中,data段在0x800的位置,而前面没有指定加载地址的text代码段和rodata只读数据段存放在bin文件中的0地址开始的位置。
③ data数据段的重定位功能由前面的text代码段实现。
④ bss段的runtime addr运行地址紧接着data段。
⑤ bin文件、ELF文件中都不存放bss段。
核心观点:程序在运行时应该位于它的runtime addr(或relocate addr),这两个地址又叫做链接地址。
ELF文件&#x