你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

X-Cube-SBSFU 使用技巧(之四)——从单核 STM32H7 到双核 STM32H7 的移植与集成

[复制链接]
STMCU小助手 发布时间:2022-8-10 08:38
1. 引言- Q% M; ~  w  T0 m
安全启动与安全更新是嵌入式设备的基本安全要求之一:安全启动提供信任根,保证每次设备启动运行的应用程序的完整性与合法性;安全更新则在固件升级环节避免系统软件被恶意修改或替换。& E) t7 s  L0 L. @" n( F. L3 _
为了方便客户在其嵌入式设备的设计中更加容易地集成安全启动和安全更新功能,STM32 提供了安全启动与安全更新的参考实现,支持众多 STM32 MCU 系列。其中 X-CUBE-SBSFU 是针对 Cortex V6/V7M 内核的 STM32 MCU 产品的参考方案。   F) b/ W% y, R1 M  ]& D) x9 H4 V1 G
在 X-CUBE-SBSFU 使用技巧的第一篇,我们对软件包及软件架构等进行了介绍,让读者对这个软件包有个初步的认识;第二篇重点介绍了如何将 SBSFU 与应用程序集成,实现安全启动和安全升级的话题;第三篇主要介绍了如何将 SBSFU 参考实现从一个STM32 MCU 平台移植到另外一个 STM32 MCU 型号的硬件平台的内容。这一篇我们将以STM32H7 为例,讨论如何基于 STM32H7 单核的 SBSFU 参考实现移植到双核 STM32H7平台上,并与 STM32H7 上的双核应用进行集成。
. E$ ~4 G: X$ M0 c+ _0 z! y
2. 双核安全启动方案的选择0 {  v) k) M8 G! g
从单核到双核的移植需要考虑两大方面因素,一方面是在第三篇中介绍过的单纯从一个硬件平台移植到另一个的过程;另一方面是关于双核的考虑。在 STM32H755 这样的双核架构的 MCU 中有 CM7 和 CM4 两个内核,分别运行不同的应用代码,这就意味着双核的安全启动至少需要考虑这样几个问题:( O  R4 S+ B& `2 \6 d5 m
• 两个核的启动顺序,安全启动代码从哪个核开始运行?
( E3 P5 }  G% j. j8 _, C8 {• 运行在两个核上的应用程序 binary 的校验问题,是作为两个 image 分别校验还是合成一个 binary 进行启动校验以及升级?8 @4 `: g8 r8 m5 r
• 运行在两个核上的应用代码地址如何配置?! |5 b- D& x4 y& q
这些问题的答案未必是唯一的,根据不同的需求可以采用不同的方式。本文的例子将采用如下的方案进行展开介绍: : \1 t; |0 b! i# T6 h
• 上电后启动配置只运行 CM7 內核,即安全启动由 CM7 负责,SBSFU 的代码也只运行在 CM7 內核上; $ `8 g4 G* H! O2 h" f  b9 o, z+ x
o 从安全角度考虑,CM7 內核的 SBSFU 需要对选项字节的配置做安全检查,例如确保 CM4 內核的启动选项被禁止等;
, R, E2 K3 \8 z8 I! d2 s) so 为了保证启动入口的唯一性,在最终产品的安全配置中应当设置RDP2,以避免 CM7/CM4 启动配置及启动地址被随意修改; % M0 U  a$ u8 ~$ W8 K, m( R
• 应用程序分为 CM7 內核和 CM4 內核两个部分,两个 binary 会被合并成一个image 进行统一的签名校验以及加解密,固件更新的过程也会使用合并的binary 镜像。  x  n& @0 H% ?- O( n& q) x
• 安全启动过程將对应用镜像文件进行校验,校验成功后将跳转至 CM7 內核的应用代码执行,并释放 CM4 內核。
1 P, s1 d/ C4 `% ho 这里也可以选择由 CM7 內核上运行的用户应用程序控制 CM4 內核的释放。- m) V( }5 J- W) W8 w# P
• 启动流程如图 1 所示
" k  k2 K- k2 U) Y* h6 m2 Y' i$ x2 y
+ R+ e+ s/ u$ {1 G8 l
I{ZZZV[D5%O2UBX7VXON@(2.png
* e! z- M* B3 f. `% X% ^4 F
# `' J; ?4 t# B9 @* z/ n/ Y" _! F
3 h% g  h* P" P& e$ A( J
采用这种方案的好处是比较简单,对现有的 SBSFU 参考实现改动比较小,由于 CM7內核启动时 CM4 內核还没有开始运行,所有的 SBSFU 代码都仅仅运行在 CM7 內核上,而且 CM7 和 CM4 內核的应用程序代码会合并成一个二进制文件,这样对于 SBSFU 来说并不需要关心被校验的代码是属于 CM7 內核还是 CM4 內核的,所以校验流程和单核的情况相比并没有变化,而 CM4 內核应用程序的启动地址也可以相对灵活选择。这样移植的过程主要还是集中在与单核芯片类似的硬件平台移植的部分。另外参考实现的 UserApp 部 分也是 H7 单核的,我们可以先保持 UserApp 为单核不变,方便验证第一步骤移植的有效性。
& m% ]2 X; `% x# D$ q# W" X3 }/ \
& e) `! F$ h; w4 Z' Y" e7 t

! U* g  L# a1 F) ?
9 x7 N% N2 V1 \6 C. b7 C. A完整版请查看:附件; I- q) |& o! i

  c, M+ g3 \. m) K2 D, X4 t- p" j/ K* B7 _3 ?5 z& ~" p- M5 d

LAT1090 SBSFU4-2coreExample_v1.0.pdf

下载

1.29 MB, 下载次数: 14

赞 收藏 评论0 发布时间:2022-8-10 08:38

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版