你通过U盘、OTA远程等方式下载的程序,其实你还是需要提前下载BootLoader程序,才能进一步下载APP程序。 今天就来说说通过OTA方式升级固件时,几种Flash(闪存)划分方式。
独立型
所谓独立型就是专门划出一部分闪存(Flash)空间用来存储引导程序(BootLoader)。
BootLoader:引导程序
Firmware A:应用程序
Firmware B:下载备份程序
Firmware A区用来固定执行应用程序,当引导程序(BootLoader)将接收到的新固件存入到Firmware B区,并校验成功后,Firmware A区中的应用程序将被擦除,然后Firmware B区的新固件将写入到Firmware A区中。 这种方式是比较常见的有一种,有Firmware B备份区,使其下载更加安全。
嵌入型
嵌入型就是将引导程序(BootLoader)嵌入到应用程序中去。
当引导程序(BootLoader)将接收到的新固件存储到Firmware B区,在校验成功后,引导程序(BootLoader)将跳到Firmware B区去执行应用程序。
外挂型
外挂型就是 当MCU内置Flash较小时,可以选择外挂存储芯片用来缓存新固件。引导程序(BootLoader)将新固件存储到外挂存储芯片中,当校验成功后,Firmware A中的应用程序将被擦除,并被写入外挂存储芯片中的新固件。
是不是根据需要,我们可以随意划分MCU的Flash空间呢? 当然不是,由于MCU的内置Flash是以块(Block)或者页(Page)为最小擦除单位,我们划分MCU内置Flash空间时必须考虑到实际MCU的块(Block)或者页(Page)的大小。 现在我们以TMPM3H6FWFG来举例说明“独立型”的Flash划分方式。从以下规格书中的信息可知,这颗MCU的内置Flash大小为128KB,最小的擦除页(Page)为4KB,最小的擦除块(Block)为32KB。
根据以上信息,我们可以对这颗MCU的内置Flash进行如下划分:
以上只是对固件升级(OTA)中MCU的Flash空间划分简单探讨一下,实际哪种方式更适合,还需要用户自己去评估。
审核编辑 黄宇
-
mcu
+关注
关注
147文章
19134浏览量
404067 -
FlaSh
+关注
关注
10文章
1759浏览量
155914
发布评论请先 登录
如何为 S32DS 中的特定变量(RAM、闪存、数据闪存)强制使用特定内存区域?
NOR Flash和NAND flash有什么区别
如何正确配置AG32 MCU,实现FLASH或者代码加密?
CW32F030片上FLASH闪存存储器物理区域的划分
如何备份复制拷贝出ESP32/8266内的固件程序
使用J-Flash来编程CW32 MCU
【道生物联TKB-623评估板试用】固件更新方法
A25:MCU系统器件知识与应用专题--MCU、EEPROM/FLASH和晶体/晶振知识及应用案例
NAND Flash的基本原理和结构
AURIX tc367通过 MCU SOTA 更新逻辑 IC 闪存是否可行?
请问在单个DAVE™项目中是否支持16kb闪存大小的 MCU 和 32kb 闪存大小的 MCU?
CX3无法将固件加载到SPI闪存如何解决?
什么是Flash闪存以及STM32使用NAND Flash
MCU固件几种Flash(闪存)划分方式
评论