Flash基础入门之Alios Things的Flash划分规则
小标 2019-04-12 来源 : 阅读 904 评论 0

摘要:本文主要向大家介绍了Flash基础入门之Alios Things的Flash划分规则,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门之Alios Things的Flash划分规则,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

Flash基础入门之Alios Things的Flash划分规则

Alios Things简介

AliOS Things发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于2017年10月20号宣布在github上开源;具体介绍请点击链接:https://github.com/alibaba/AliOS-Things/blob/master/README-zh.md

本文主要介绍Alios的flash划分规则,方便大家开发移植,如有疑问,欢迎留言。

1. 需求简介

AliOS Things 由于功能需要,维护了一张flash分区表,这张表包括bootloader区、Application区、OTA TMP区以及parameters区,如下图:


上图的分区的简介:


2. 分区大小划分规则

1、获取芯片平台的Flash大小

2、获取bootloader信息,包括:bootloader支持的升级类型(原地还是乒乓)、bootloader跳转地址(如果是乒乓会有两个跳转地址);

3、跟据bootloader获取的信息,划分整个Flash;

Bootloader支持原地升级

原地升级flash大小划分方法表:


Bootloader 支持乒乓升级

乒乓升级flash大小划分方法表:


注意:


从安全角度考虑,建议用户使用乒乓升级方式,并支持版本回滚;如果用户考虑成本因素采用原地升级方式,因误操作,升级了不正确的固件,导致设备变砖,用户需要自己承担责任。


除了以上定义的flash分区之外,有些芯片或者模组还有一些配置文件需要烧写到Flash固定地址,所以确保以上分区不能与这些配置文件的地址空间相覆盖或者重叠;


以上分区一旦定义好之后不能轻易更改,否则会造成数据丢失;如果客户需要添加自定义分区,需在分区表索引定义的尾部顺次添加不能中间插入


3. 示例

根据以上的划分原则,以esp8266 Flash大小为2Mbytes 升级空间为1024x1024模组为例划分各分区:

1、获取Flash 大小:Flash size = 2M bytes;地址空间为:0x000000 ~ 0x200000

2、Bootloader信息:

        1.支持乒乓升级;

        2. Bootloader 跳转地址1 = 0x1000 ;

        3.Bootloader 跳转地址2 = 0x101000;

          Application区理论大小为:0x101000 – 0x1000 = 0x100000;

3、根据模组厂商文档,需要烧的配置文件:

由文档可知地址:0x1FC000 ~ 0x200000 为配置文件存储区,所以parameters1~parameters4 只能从0x1FC000向低地址划分,即:

Parameters1 起始地址:0x1f6000 大小:0x1000

Parameters2 起始地址:0x1f7000 大小:0x2000

Parameters3 起始地址:0x1f9000 大小:0x1000

Parameters4 起始地址:0x1FA000 大小:0x1000

4、Application区和OTA Tmp区划分:

根据步骤3可知OTA Tmp区的范围只能是parameters1 – bootloader跳转地址2, 即:0x1f6000 - 0x101000 = 0xF5000; 由于是乒乓升级,application区的大小应该和OTA Tmp区大小相等;

由以上4个步骤可完成整个分区表的划分,具体可查看:aos/board/esp8266/board.c文件。


以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程