请选择 进入手机版 | 继续访问电脑版
查看: 256|回复: 0

MCU固件升级Flash划分方式

[复制链接]
  • TA的每日心情
    开心
    昨天 10:24
  • 签到天数: 47 天

    [LV.5]常住居民I

    20

    主题

    232

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1649
    最后登录
    2025-2-9
    发表于 2025-1-9 14:52:44 | 显示全部楼层 |阅读模式
    给大家分享一下通过OTA方式升级固件时,几种Flash(闪存)划分方式。
    独立型所谓独立型就是专门划出一部分闪存(Flash)空间用来存储引导程序(BootLoader)。
    如下图:BootLoader:引导程序Firmware A:应用程序Firmware B:下载备份程序
    095506bwtevafjjatar7fr.png.thumb.jpg
    Firmware A区用来固定执行应用程序,当引导程序(BootLoader)将接收到的新固件存入到Firmware B区,并校验成功后,Firmware A区中的应用程序将被擦除,然后Firmware B区的新固件将写入到Firmware A区中。
    这种方式是比较常见的一种,因为它有Firmware B备份区,即便Firmware A区应用程序在更新(擦除)的时候突然断电,也不会影响升级,使其下载更加安全。
    嵌入型嵌入型就是将引导程序(BootLoader)嵌入到应用程序中去。
    095521k8iq1zm7mt84b97b.png.thumb.jpg

    当引导程序(BootLoader)将接收到的新固件存储到Firmware B区,在校验成功后,引导程序(BootLoader)将跳到Firmware B区去执行应用程序。
    外挂型外挂型就是外挂Flash或EEPROM用来存储新固件。
    当MCU内置Flash较小时,可以选择外挂存储芯片用来缓存新固件。引导程序(BootLoader)将新固件存储到外挂存储芯片中,当校验成功后,Firmware A中的应用程序将被擦除,并被写入外挂存储芯片中的新固件。
    095535yzcmql26ze56l5oo.png.thumb.jpg

    那么问题来了,是不是我们可以随意划分MCU的Flash空间呢?当然不是,由于MCU的内置Flash是以块(Block)或者页(Page)为最小擦除单位,我们划分MCU内置Flash空间时必须考虑到实际MCU的块(Block)或者页(Page)的大小。
    以某单片机来举例说明“独立型”的Flash划分方式。从以下规格书中的信息可知,这颗MCU的内置Flash大小为128KB,最小的擦除页(Page)为4KB,最小的擦除块(Block)为32KB。
    根据以上信息,我们可以对这颗MCU的内置Flash进行如下划分:
    095928picww0q05iddccew.png.thumb.jpg
    以上只是对固件升级(OTA)中MCU的Flash空间划分简单探讨一下,实际哪种方式更适合,还需要用户自己去评估。

    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-2-10 05:37 , Processed in 0.099889 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表