RT-Thread--连接脚本(SENTION 一)

/* Define output sections 
 * ‘SECTIONS’ 假设你的程序只有代码节, 初始化过的数据节, 和未初始化过的数据节. 这些会存在于’.text’,’.data’和’.bss’节, 
 * 另外, 让我们进一步假设在你的输入文件中只有这些节.
 * 下面这个例子中代码应当被载入到地址’0x10000’处, 而数据应当从0x8000000处开始
 SECTIONS
{
    . = 0x10000;
    .text : { *(.text) }
    . = 0x8000000;
    .data : { *(.data) }
    .bss : { *(.bss) }
}
 * 上例中, 在’SECTIONS’命令中的第一行是对一个特殊的符号’.’赋值, 这是一个定位计数器. 
 * 如果你没有以其它的方式指定输出节的地址(其他方式在后面会描述), 那地址值就会被设为定位计数器的现有值. 
 * 定位计数器然后被加上输出节的尺寸. 在’SECTIONS’命令的开始处, 定位计数器拥有值’0’.
 *第二行定义一个输出节,’.text’. 冒号是语法需要,现在可以被忽略. 节名后面的花括号中,你列出所有应当被放入到这个输出节中的输入节的名字.
 * ‘*’是一个通配符,匹配任何文件名. 表达式’(.text)’意思是所有的输入文件中的’.text’输入节.
 * 因为当输出节’.text’定义的时候, 定位计数器的值是’0x10000’,连接器会把输出文件中的’.text’节的地址设为’0x10000’.
 * 余下的内容定义了输出文件中的’.data’节和’.bss’节. 连接器会把’.data’输出节放到地址’0x8000000’处. 
 * 连接器放好’.data’输出节之后, 定位计数器的值是’0x8000000’加上’.data’输出节的长度. 
 * 得到的结果是连接器会把’.bss’输出节放到紧接’.data’节后面的位置.
 * 连接器会通过在必要时增加定位计数器的值来保证每一个输出节具有它所需的对齐. 在这个例子中, 
 * 为’.text’和’.data’节指定的地址会满足对齐约束, 但是连接器可能会需要在’.data’和’.bss’节之间创建一个小的缺口。
 *
 */

 

你可能感兴趣的:(RTOS)