stm32散列加载及作用

草稿,用例和内容编辑以后有空完善吧

通过编辑scatter file即可划分出相应Section和分配逻辑。

当然首要的条件是你在利用ADS进行项目开发,下面我们看看更具体的一些情况。
1 存在复杂的地址映射:例如代码和数据需要分开放在在多个区域。
2 存在多种存储器类型:例如包含 Flash,ROM,SDRAM,快速SRAM。我们根据代码与数据的特性把他们放在不同的存储器中,比如中断处理部分放在快速SRAM内部来提高响应速度,而把不常用到的代码放到速度比较慢的Flash内。
3 函数的地址固定定位:可以利用Scatter file实现把某个函数放在固定地址,而不管其应用程序是否已经改变或重新编译。
4 利用符号确定堆与堆栈:
5 内存映射的IO:采用scatter file可以实现把某个数据段放在精确的地指处。
因此对于嵌入式系统来说scatter file是必不可少的,因为嵌入式系统采用了ROM,RAM,和内存映射的IO。

个人的实际应用:
1.复杂内存映射,电路板有多个ram和sram,根据散列加载可方便指定执行控件
2.片内单独扇区划分,只用来存储一些可能修改但又不经常修改的配置数据而无RO-CODE,应为为flash擦写机制,若不作处理当你修改的配置数据同时和当前你执行的代码恰好处于一个扇区,擦除秒死机。

attribute ((section(“ROM2”))) 可指定Section

而scatter文件,可根据编译文件名匹配,根据(RW,RO-code,RO-DATA,ZI)等类型匹配

keil uVision help中 ”Scatter-Loading“章节有非常详尽的介绍
在这里插入图片描述

相关博客 https://www.cnblogs.com/qiyuexin/p/9026365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值