2026 / 07 / 21
MCUboot系列(1-2)简介以及在RA FSP上的支持

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


接下来我们看第三种升级模式,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时间较短,是三种模式中时间最短的。


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


关于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各部分信息。


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。


本章总结

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

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信