电子产业一站式赋能平台

PCB联盟网

搜索
查看: 208|回复: 0
收起左侧

嵌入式软件OTA升级,有哪几种FLASH划分方式?

[复制链接]

567

主题

567

帖子

4209

积分

四级会员

Rank: 4

积分
4209
发表于 2025-1-9 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师) W  [7 {" k) F
关注我,一起变得更加优秀!
/ ~8 A" A8 @7 s2 m/ H( D8 U5 T  F很多嵌入式硬件设备都集成了OTA功能,以便产品量产后可以通过远程OTA等方式下载的APP应用程序。
& |& q2 E1 m# \1 x在使用带有OTA功能的固件之前,其实还需要提前下载BootLoader程序,才能进一步下载APP程序,今天就来说说通过OTA方式升级固件时,几种Flash(闪存)划分方式。- _6 Z+ h0 y& K! p, d, J" @
独立型
6 z. a1 Q- Q, H8 {4 X/ w所谓独立型就是专门划出一部分闪存(Flash)空间用来存储引导程序(BootLoader)。1 T% L* `8 m4 [( t- P. `1 P
如下图:
  • BootLoader:引导程序
  • Firmware A:应用程序
  • Firmware B:下载备份程序! I1 b* V! w/ K2 o) P1 N3 X2 D

    ! b/ |6 I. m. P2 i  N

    log3h1usy2k64048968705.jpg

    log3h1usy2k64048968705.jpg

    * @* A1 A- P0 BFirmware A区用来固定执行应用程序,当引导程序(BootLoader)将接收到的新固件存入到Firmware B区,并校验成功后,Firmware A区中的应用程序将被擦除,然后Firmware B区的新固件将写入到Firmware A区中。
    ; q2 F8 S" ?: f2 L  n9 X- Z+ c6 w这种方式是比较常见的有一种,有Firmware B备份区,使其下载更加安全。
    5 R7 ~2 o0 S! w嵌入型8 b9 O6 J4 V4 w
    嵌入型就是将引导程序(BootLoader)嵌入到应用程序中去。
    ) m) J, ~- G4 K& U2 A' x

    ie3w4jbw2hv64048968805.jpg

    ie3w4jbw2hv64048968805.jpg
    2 [$ A# i: `6 h
    当引导程序(BootLoader)将接收到的新固件存储到Firmware B区,在校验成功后,引导程序(BootLoader)将跳到Firmware B区去执行应用程序。9 h% }, r. j7 k+ L. o7 Y
    外挂型, ~- A5 L1 V/ r
    外挂型就是外挂Flash或EEPROM用来存储新固件。
    ' n* E# ]( u: N' H. R  K当MCU内置Flash较小时,可以选择外挂存储芯片用来缓存新固件。引导程序(BootLoader)将新固件存储到外挂存储芯片中,当校验成功后,Firmware A中的应用程序将被擦除,并被写入外挂存储芯片中的新固件。
    7 b4 Y, U4 z3 X' s7 j2 x

    ezizfatwvzr64048968905.png

    ezizfatwvzr64048968905.png
    : V% W* j9 F: j2 @. q

    , I) z$ X! I+ F5 \+ Q5 O是不是根据需要,我们可以随意划分MCU的Flash空间呢?" ]; h9 J4 n- N. [5 [
    当然不是,由于MCU的内置Flash是以块(Block)或者页(Page)为最小擦除单位,我们划分MCU内置Flash空间时必须考虑到实际MCU的块(Block)或者页(Page)的大小。: [- b. ?4 y2 q6 Q! q' m
    现在我们以TMPM3H6FWFG来举例说明“独立型”的Flash划分方式。从以下规格书中的信息可知,这颗MCU的内置Flash大小为128KB,最小的擦除页(Page)为4KB,最小的擦除块(Block)为32KB。
    3 C! E; V$ r: g6 v: P

    ynzlmx0wptl64048969005.png

    ynzlmx0wptl64048969005.png

    5 J3 o- [$ b- K, E0 v7 m+ Q3 ~ 根据以上信息,我们可以对这颗MCU的内置Flash进行如下划分:9 W* S2 q( p, T5 y* {2 ^

    cmbw33kswry64048969105.png

    cmbw33kswry64048969105.png

    1 f" c* U0 ]* r) j2 R5 Q9 K2 p以上只是对固件升级(OTA)中MCU的Flash空间划分简单探讨一下,实际哪种方式更适合,还需要用户自己去评估9 _3 y5 T# O  M6 |6 o7 Z' r6 N& ^
    -- 文章来源于牛逼的工程师网友!
    0 e, Z' K' _1 h' o0 O9 Z( @) p" b5 N8 l, S/ y3 G2 s, d% p8 k
    -END-
    $ J, I2 ~- K- w: [9 y2 b. O往期推荐:点击图片即可跳转阅读2 D- O3 _4 y' v' l
                                                           
      m" A* R8 u% t5 }# Q& E% q4 E+ f3 {                                                                ' e. p/ D# D# d% h2 ~% l
                                                                           
    ! ~2 W0 a. Z  z* U+ R4 B7 X0 u                                                                                  I4 Q4 j' |. u/ K+ i4 Z4 m

    iplzwngeazi64048969205.jpg

    iplzwngeazi64048969205.jpg
    1 ^7 n5 |+ }9 }1 w; w
                                                                                   
    5 t8 F* h% ~! v' v                                                                                        2025年,抽屉里的嵌入式开发板,早就已经写满了岁月的痕迹!
    # z% ^6 |) \1 u3 Y  Q* P3 E                                                        # b! E4 \0 @& I/ x. ^) Y+ k+ P+ n
                                                                   
    - |) |( p$ o, l- b" I                                                                        & x1 R; S' o) j+ X% w
                                                                                      l# ~' ]' `( x; m& F

    2ixawlsyfg564048969305.jpg

    2ixawlsyfg564048969305.jpg
      l, T6 T' y2 }. F0 a
                                                                                    + E) g$ P( U1 j) g/ Z  S1 Q# Z
                                                                                            一些不太成熟的嵌入式系统设计观念!0 i8 D7 ~0 c# G6 n6 ?: v% Y) }5 \. O
                                                                   
    1 ?  s$ j- X/ s- X5 l' H                                                                        / x/ W8 ~% v5 c
                                                                                   
    * g6 C" b6 {# J2 U

    ykcrxj5lvxw64048969406.jpg

    ykcrxj5lvxw64048969406.jpg
      O, Y* W- E' N6 f& n/ \) K
                                                                                    ; n: v2 i# x7 Y; D
                                                                                            当嵌入式软件出现bug的时候,可以按照这种思路进行排查!' C4 u' Q, t2 |9 y1 Z- _  l: r8 W
                                                                                    1 m4 A& `1 ], i1 f% K
                                                                            5 J; w: }, k  }7 y0 S/ _
                                                                   
    5 P& Y0 w* [, ^1 F  a0 ^( M                                                        我是老温,一名热爱学习的嵌入式工程师  R7 i; o- ?& Z7 {; |! S
    关注我,一起变得更加优秀!1 X5 R$ i# U. e* m2 M

    1e3l21wbnum64048969506.jpg

    1e3l21wbnum64048969506.jpg
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表