电商网站计划,wordpress引用抖音视频,简约网站内容布局,免费推广公司摘要#xff1a; 为了方便大家移植Alios Things,本文给出了关于Alios Things Flash划分规则#xff0c;及注意事项。
Alios Things简介
AliOS Things发布于2017年杭州云栖大会#xff0c; 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统#xff0c;于201…摘要 为了方便大家移植Alios Things,本文给出了关于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区如下图 上图的分区的简介:
分区名称分区描述Bootloader区存储bootloader固件引导启动整个系统有些支持OTA代码copy等Application区当原地升级时此分区为APP程序运行区当乒乓升级A,B分区时此分区为APP程序运行A区与APP程序运行B区OTA Tmp交替存储下载的固件并运行对应的程序。OTA Tmp区当原地升级时此分区用于存放OTA的下载固件当乒乓升级A,B分区时此分区为APP程序运行B区与APP程序运行A区Application交替存储下载的固件并运行对应的程序。Parameters1区OTA参数存储区Parameters2区KV存储区Parameters3区用户自定义Mk3060,b_l475e两个板子的KV存储区Parameters4区安全相关的参数存储区
2. 分区大小划分规则
获取芯片平台的Flash大小获取bootloader信息包括bootloader支持的升级类型原地还是乒乓、bootloader跳转地址如果是乒乓会有两个跳转地址跟据bootloader获取的信息划分整个Flash
Bootloader支持原地升级
原地升级flash大小划分方法表:
分区名起始地址分区大小Bootloader区芯片Flash 起始地址bootloader跳转地址与Flash起始地址差值Application区Bootloader 跳转地址需要用户根据实际情况自己评估Application的大小OTA Tmp 区Application 分区结束地址与Application尽量保持一致如果支持差分可适当小些用户需根据实际情况自己评估Parameters1区OTA Tmp 分区结束地址一般是4KbytesParameters2区Parameters1分区结束地址一般是8KbytesParameters3区Parameters2分区结束地址一般是4KbytesParameters4区Parameters3分区结束地址一般是4Kbytes
Bootloader 支持乒乓升级
乒乓升级flash大小划分方法表:
分区名起始地址分区大小Bootloader区芯片Flash 起始地址bootloader跳转地址与Flash起始地址差值Application区Bootloader 跳转地址1Bootloader跳转地址2与bootloader跳转地址1之间的差值如果bootloader给出flash擦除范围以bootloader给出大小为准OTA Tmp 区Bootloader 跳转地址2与Application区大小一致Parameters1区OTA Tmp 分区结束地址一般是4KbytesParameters2区Parameters1分区结束地址一般是8KbytesParameters3区Parameters2分区结束地址一般是4KbytesParameters4区Parameters3分区结束地址一般是4Kbytes注意 从安全角度考虑建议用户使用乒乓升级方式并支持版本回滚如果用户考虑成本因素采用原地升级方式因误操作升级了不正确的固件导致设备变砖用户需要自己承担责任。除了以上定义的flash分区之外有些芯片或者模组还有一些配置文件需要烧写到Flash固定地址所以确保以上分区不能与这些配置文件的地址空间相覆盖或者重叠以上分区一旦定义好之后不能轻易更改否则会造成数据丢失如果客户需要添加自定义分区需在分区表索引定义的尾部顺次添加不能中间插入3. 示例
根据以上的划分原则以esp8266 Flash大小为2Mbytes 升级空间为1024x1024模组为例划分各分区
获取Flash 大小Flash size 2M bytes地址空间为0x000000 ~ 0x200000 Bootloader信息 支持乒乓升级Bootloader 跳转地址1 0x1000 ;Bootloader 跳转地址2 0x101000 Application区理论大小为0x101000 – 0x1000 0x100000;根据模组厂商文档需要烧的配置文件: 由文档可知地址0x1FC000 0x200000 为配置文件存储区所以parameters1~parameters4 只能从0x1FC000向低地址划分即 Parameters1 起始地址0x1f6000 大小0x1000 Parameters2 起始地址0x1f7000 大小0x2000 Parameters3 起始地址0x1f9000 大小0x1000 Parameters4 起始地址0x1FA000 大小0x1000Application区和OTA Tmp区划分 根据步骤3可知OTA Tmp区的范围只能是parameters1 – bootloader跳转地址2 即0x1f6000 - 0x101000 0xF5000; 由于是乒乓升级application区的大小应该和OTA Tmp区大小相等 由以上4个步骤可完成整个分区表的划分具体可查看aos/board/esp8266/board.c文件。
原文链接
本文为云栖社区原创内容未经允许不得转载。