0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍MCUboot支持的四种升级模式(2)

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-06-13 10:56 次阅读

介绍MCUboot支持的四种升级模式,分别是Overwrite、Swap、Direct XIP和加载到RAM中执行。由于FSP不支持第四种——加载到RAM中执行,因为我们重点介绍前三种。

Direct XIP(Execute In Place)模式

6ddf386e-2483-11ef-91d2-92fbcf53809c.png

MCUboot Direct XIP模式流程图

接下来我们看第三种升级模式,Direct XIP(Execute In Place),跟前两种模式Overwrite和Swap最大的不同在于,代码是就地执行的,即升级后的代码直接在Secondary Slot中执行。

上电后芯片中烧录的是Bootloader和Primary Slot中User Application v1.0,运行的过程中,芯片收到升级指令,接收新firmware并烧录到Secondary Slot中,然后跳转至Secondary Slot中执行。

如果查看升级操作的起始状态和结束状态会发现,芯片从运行Primary Slot中的低版本v1.0代码变为运行Secondary Slot中的高版本v2.0代码,因此完成了一次升级。

从Direct XIP模式的流程可以看出它的一些特点:

支持代码回滚/回退/降级。由于升级完成后,低版本v1.0 Image依然存储在芯片中,因此若在高版本v2.0 上发现bug需要修复,则有机会重新执行升级程序使得代码回到v1.0。

升级过程中不涉及对flash的擦除和写入操作,因此Boot时间较短,是三种模式中时间最短的。

关于各种模式之间的更多细节比较,请参考下图中的内容:

6df8c07c-2483-11ef-91d2-92fbcf53809c.png

各升级模式特性比较

关于Secondary Slot的属性,既可以是片上flash,也可以是外部flash。FSP对外部的支持为QSPI Flash,可以映射到地址总线上的存储空间。假如利用外部flash如QSPI作为Secondary slot,则不支持Direct XIP模式。

另外,由于映像文件Image的传输途径可能具有潜在风险,又或者使用外部flash存储新Image担心被盗用,则推荐使用加密存储的方式。假如使用加密存储,则不支持Direct XIP模式。

前面提到了MCUboot可以实现安全boot,即判断目标Image的完整性和合法性,根据结果决定是否执行固件升级操作,这个过程也可以叫做安全校验。

安全校验的设计可谓丰俭由人,整体的原则是,安全级别越高,带来的代码量增加越大,启动时间越长。

MCUboot的安全校验意味着,待更新的Image文件需要增加一些标识,才能被bootloader识别,原始的文件无法通过安全校验。

下面的图展示了处理后的Application Image各部分信息

6e1587ca-2483-11ef-91d2-92fbcf53809c.png

利用Python脚本处理后的Application Image

MCUboot的安全校验的实现方式包括:

增加Header,位于更新后的Bootloader和Application实际起始地址中间。其中包含了丰富的信息,比较关键的部分如Image的版本及大小。

增加TLV (Type Length Value),紧跟在Application之后。其中包含了Image文件对应的HASH哈希值和对Image文件生成的签名信息。

增加Trailer,位于Slot顶端,和TLV之间会填充固定数值。根据升级模式的不同,Trailer的格式和含义也不同,在此不展开。值得一提的是,对于Swap模式,Trailer中包含了Bootloader进行升级时的判断标志,更多细节请参考MCUboot官网对于此部分的说明。

由于Bootloader占用了flash空间0地址开始的部分且大小几乎不变,因此在设计的时候,需评估flash的空间划分,使得Bootloader尽量小以让出更多空间给Application利用。关于Bootloader优化,我们不在本章中展开说明。

决定Bootloader大小的关键要素有以下几个:

升级模式,Overwrite最小,Swap最大

安全校验的级别,级别越高代码量越大

对于Flash划分,需要遵循的基本原则是,每个区域(Bootloader,Primary Slot和Secondary Slot)均占据完整的Block size,具体到RA产品,请在硬件手册中确认Block size的值。

以RA6M4 1M Code Flash产品为例,共有38个Block,其中低8个Block大小为8KB,高地址上的Block大小均为32KB。

6e311670-2483-11ef-91d2-92fbcf53809c.png

RA6M4 Flash Block地址信息

本章总结

本篇我们介绍了MCUboot的基本概念和设计的基本原则,后续的文章中,会针对每一种升级模式,做更详细的说明。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421634
  • 烧录
    +关注

    关注

    8

    文章

    254

    浏览量

    35515
  • FSP
    FSP
    +关注

    关注

    0

    文章

    34

    浏览量

    7107

原文标题:MCUboot系列(1-2)简介以及在RA FSP上的支持

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    四种支持向量机用于函数拟合与模式识别的Matlab示例程序

    四种支持向量机用于函数拟合与模式识别的Matlab示例程序,内容主要在个文件夹里面[hide] [/hide]
    发表于 03-13 15:46

    四种不同供电模式的LED拓扑介绍

    本文中,小编将为大家介绍四种在LED供电当中经常使用的四种拓扑结构。感兴趣的朋友快来看一看吧。 首先需要从了解转换器的最小及最大输出电压入手。这只是将所有LED正向压降与传感电阻器电压相加的总数
    发表于 10-10 15:07

    STM32芯片GPIO的四种输入模式四种输出模式

    STM32芯片的GPIO一共有8配置模式,对8模式的理解如下1.四种输入模式上拉输入:在默认
    发表于 05-21 07:55

    单片机四种输入模式

    单片机四种输入模式 MCU输入模式有浮空、上拉、下拉、模拟输入这四种模式,如果采用上拉或者下拉模式
    发表于 08-24 16:19

    变频器主要支持四种模式

    变频器主要支持四种模式:无PG的V/F模式,有PG的V/F模式,无PG的矢量控制模式,有PG的矢
    发表于 09-03 06:57

    介绍AUTOSAR支持四种功能安全机制

    1、AUTOSAR的四种功能安全机制虽然AUTOSAR不是一个完整的安全解决方案,但它提供了一些安全机制用于支持安全关键系统的开发。本文用于介绍AUTOSAR支持
    发表于 06-10 17:33

    二维码的四种主要应用模式

    本文介绍二维码主要的四种应用模式,包括读取数据模式、解码上网模式、解码验证模式、解码通信
    发表于 01-25 11:52 3404次阅读

    WIFI模块四种工作模式介绍_WIFI模块工作模式浅析

    WIFI模块常见的四种工作模式:透传模式、串口指令模式、HTTPD Client模式、GPIO模式
    发表于 01-19 14:45 2.8w次阅读

    获得 2 MHz 开关频率的四种设计技巧

    获得 2 MHz 开关频率的四种设计技巧
    发表于 11-02 08:16 0次下载
    获得 <b class='flag-5'>2</b> MHz 开关频率的<b class='flag-5'>四种</b>设计技巧

    获得2MHz开关频率的四种设计技巧

    获得2MHz开关频率的四种设计技巧
    发表于 11-02 08:16 0次下载
    获得<b class='flag-5'>2</b>MHz开关频率的<b class='flag-5'>四种</b>设计技巧

    IEC 61851标准中的四种EV充电模式

    在本文中,我们将了解国际电工委员会 (IEC) 规定的不同 EV 充电模式。这些模式在处理电动汽车传导充电系统的 IEC 61851 标准中指定。该标准描述了四种不同的充电模式,称为
    的头像 发表于 06-24 15:06 9727次阅读
    IEC 61851标准中的<b class='flag-5'>四种</b>EV充电<b class='flag-5'>模式</b>

    GPIO的四种输入模式介绍

    32位寄存器共同控制。 输出和输入都是针对芯片引脚来讲的(即引脚的对外输出,和外界对引脚的输入)。 四种输入模式介绍 输入模式下可读取端口的高低电平或电压。例如各类传感器(使用ADC功
    的头像 发表于 11-09 16:51 6255次阅读
    GPIO的<b class='flag-5'>四种</b>输入<b class='flag-5'>模式</b><b class='flag-5'>介绍</b>

    浅析电子负载常见的的四种工作模式

    浅析电子负载常见的的四种工作模式 电子负载是电子设备的一,用于模拟负载并测试电源的性能。它在电子行业和电力领域有广泛的应用。电子负载常见的四种工作
    的头像 发表于 01-22 13:43 2241次阅读

    介绍MCUboot支持四种升级模式(1)

    随着嵌入式系统的发展,产品对于代码升级功能的需求越来越大。通过代码升级,可以实现诸如支持新功能,修复故障等目标。
    的头像 发表于 06-13 10:55 2227次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>MCUboot</b><b class='flag-5'>支持</b>的<b class='flag-5'>四种</b><b class='flag-5'>升级</b><b class='flag-5'>模式</b>(1)

    MCUboot Swap模式升级的流程和注意事项

    前面介绍MCUboot的基础知识(请查看上方“简介以及在RA FSP上的支持”文章),上次介绍了Overwrite模式(请查看上方“RA
    的头像 发表于 06-13 16:01 676次阅读
    <b class='flag-5'>MCUboot</b> Swap<b class='flag-5'>模式</b><b class='flag-5'>升级</b>的流程和注意事项