Scatter file

Scatter文件是用于指定程序在内存中布局的工具,它允许将代码和数据分配到特定的加载和执行区域。文章详细介绍了段、Image、加载区和执行区的概念,并解释了如何通过Scatter文件或特别命名的部分来控制函数和数据的定位。编译器和链接器可以通过创建单独的段来将函数和变量放在固定地址,这在嵌入式系统中尤其重要,如在bootloader中加载内核到RAM并初始化执行区。
摘要由CSDN通过智能技术生成

概念

段(Section):分为输入段(Input-Section)和输出段(Output Section),是连接器操作的基本单位,段有三种属性,只读RO,读写RW,和Zero-Initialize(ZI,初始化为0的可读写数据)

Image(映像):连接器将目标文件(Object)和库(Lib)链接之后输出即是Image文件,Image通常是可执行的二进制文件(也可能是不可执行的资源文件),在Image中通常包含了只读的code和data,初始化的数据。

Load Region(加载区):在系统上电后,Image被加载到目标系统中(通常是bootloader将Image搬到RAM中),这个时候Image还没有开始执行(即内核文件还未解压),此时各个段子RAM中的区域就是Load Region。

Execution Region(执行区):系统上电加载到RAM中以后开始执行,这时内核就需要解压。内核解压就是要将RW数据和ZI数据在指定的区域进行初始化,初始化为指定的初始值或0,这些指定的区域就是执行区。另外RO<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值