本文主要是介绍链接脚本之SECTIONS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SECTIONS基本的命令语法
SECTIONS
{...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ){ contents } >region :phdr =fill...
}
- 这么多参数中,只有secname 和 contents 是必须的
- start :表示将某个段强制链接到的地址(放到哪里去运行)。
- AT(addr):实现存放地址和加载地址不一致的功能,AT表示在文件中存放的位置(下载时的存放位置),而在内存里呢,按照普通方式存储。
- region:这个region就是前面说的MEMORY命令定义的位置信息。
例如:
SECTIONS { firtst 0x00000000 : { head.o init.o } //第一段为head.o init.osecond 0xB0004000 : AT(2048) { leds.o } //第二段leds.o放到2048位置处,链接到0xB0004000处运行
}
. = 0x00000000;/*;从0x0位置开始*/. = ALIGN(4);/*代码以4字节对齐*/.text :{cpu/arm920t/start.o (.text) /*代码的第一个代码部分*/ *(.text)/*下面依次为各个text段函数*/}
这篇关于链接脚本之SECTIONS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!