vesperW · 11月4日

MCU固件升级Flash划分方式

之前给大家分享过《MCU批量生产下载程序的几种常见方法》,今天再给大家分享一下通过OTA方式升级固件时,几种Flash(闪存)划分方式。

独立型

所谓独立型就是专门划出一部分闪存(Flash)空间用来存储引导程序(BootLoader)。

如下图:

  • BootLoader:引导程序
  • Firmware A:应用程序
  • Firmware B:下载备份程序

image.png

Firmware A区用来固定执行应用程序,当引导程序(BootLoader)将接收到的新固件存入到Firmware B区,并校验成功后,Firmware A区中的应用程序将被擦除,然后Firmware B区的新固件将写入到Firmware A区中。

这种方式是比较常见的一种,因为它有Firmware B备份区,即便Firmware A区应用程序在更新(擦除)的时候突然断电,也不会影响升级,使其下载更加安全。

嵌入型

嵌入型就是将引导程序(BootLoader)嵌入到应用程序中去。

image.png

当引导程序(BootLoader)将接收到的新固件存储到Firmware B区,在校验成功后,引导程序(BootLoader)将跳到Firmware B区去执行应用程序。

外挂型

外挂型就是外挂Flash或EEPROM用来存储新固件。

当MCU内置Flash较小时,可以选择外挂存储芯片用来缓存新固件。引导程序(BootLoader)将新固件存储到外挂存储芯片中,当校验成功后,Firmware A中的应用程序将被擦除,并被写入外挂存储芯片中的新固件。

image.png

那么问题来了,是不是我们可以随意划分MCU的Flash空间呢?

当然不是,由于MCU的内置Flash是以块(Block)或者页(Page)为最小擦除单位,我们划分MCU内置Flash空间时必须考虑到实际MCU的块(Block)或者页(Page)的大小。

以某单片机来举例说明“独立型”的Flash划分方式。从以下规格书中的信息可知,这颗MCU的内置Flash大小为128KB,最小的擦除页(Page)为4KB,最小的擦除块(Block)为32KB。

image.png

根据以上信息,我们可以对这颗MCU的内置Flash进行如下划分:

image.png

以上只是对固件升级(OTA)中MCU的Flash空间划分简单探讨一下,实际哪种方式更适合,还需要用户自己去评估。

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

END

来源:嵌入式专栏

推荐阅读

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
2891
内容数
284
分享一些在嵌入式应用开发方面的浅见,广交朋友
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息