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

博客围绕RT-Thread、连接脚本和SECTION展开,虽无具体内容,但可推测与嵌入式开发环境相关,RT-Thread是重要的嵌入式开发系统,连接脚本和SECTION在程序编译、内存分配等方面有重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* 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’节之间创建一个小的缺口。
 *
 */

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tyustli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值