良许Linux教程网 干货合集 MCU固件升级的几种Flash划分方式

MCU固件升级的几种Flash划分方式

昨天我分享了《单片机产品生产下载程序的常见方法》,有读者提到他们使用U盘、OTA远程等方式下载程序。

实际上,无论是通过U盘、OTA远程等方式下载程序,你都需要事先下载BootLoader程序,然后才能进一步下载APP程序。

今天我们来讨论一下通过OTA方式升级固件时,常见的几种Flash(闪存)划分方式。

首先是独立型划分方式,这种方式是将一部分闪存空间专门用于存储引导程序(BootLoader)。

下图所示:

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

在独立型划分方式中,引导程序和应用程序通过不同的闪存空间进行存储,可以在升级固件时保留原有的引导程序,并在下载新的应用程序后进行切换。这种划分方式在固件更新过程中比较常见。

image-20231116221049211
image-20231116221049211

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

这种方式是比较常见的有一种,有Firmware B备份区,使其下载更加安全。

嵌入型

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

image-20231116221054357
image-20231116221054357

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

外挂型

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

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

image-20231116221058747
image-20231116221058747

是不是根据需要,我们可以随意划分MCU的Flash空间呢?

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

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

image-20231116221101805
image-20231116221101805

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

image-20231116221104848
image-20231116221104848

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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部