TI中文支持网
TI专业的中文技术问题搜集分享网站

CMD文件中的链接顺序

举个例子:

在CMD文件中如下配置

SECTIONS

{

init : load > mem

const :load > mem

text:load > mem

data:load > mem

bss:load > mem

…….

}

但是编译后,map文件中,const段却在bss段后面,也就是说链接顺序并没有按照CMD中的顺序,我不希望指定地址来指定链接顺序,有什么方法能够解决我的问题不

谢谢!

Tony Tang:

linker根据cmd文件按照自己的算法规则安排在同一memory块里的段,主要原则是减少内存空洞hole,所以上面SECTION里的段都是放在同一mem里,其先后顺序是由linker的算法来决定的。

如果希望将不同的段放到指定的地方,除了上面的你提供的固定地址的方法,还可以在MEMORY里将MEM分成不同的块,再在SECTION里分配置到不同的MEM块。

其实在同一个MEMORY块里,各段的放置顺序对程序的执行没有影响。

赞(0)
未经允许不得转载:TI中文支持网 » CMD文件中的链接顺序
分享到: 更多 (0)