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

【STM32H7S78-DK评测】-2 H7RS芯片新特性

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
2 ]0 c7 h0 l6 y
这是一款基于bootflash的MCU,有64 KB内部Flash称为 bootflash、可灵活配置的620 KB SRAM以及带Flex ECC的32 x 32 KB缓存。
STM32H7R7/S7系列支持高速外部存储器接口和XiP,专用图形系列可利用NeoChrom GPU、JPEG编解码器和LTDC实现类似MPU的GUI,
微信截图_20240818163548.png

* c( d/ G. o& bSTM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化; J! F4 l( v1 g; t. u/ C: [1 g
H7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,
; q9 D# t2 q# K但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,
5 g: b3 q8 h! i, j  ^因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些, * I5 D# Q6 H( ~. C# t

, O# F& ]! ?  O; u- C这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。- N  S5 i& l; n
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;! f2 O+ f1 x1 Y: S2 a! a
然后在CubeMX中 也对该系列芯片进行了深度支持,: g) x& U' h/ a! r! d1 E
在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,
; [  o' f! T" ^% f+ Z* U首先就是在 Project Manager选项卡中 多了 2项
4 e! j5 ?9 m: X" t8 t. N/ X 微信截图_20240819010413.png , h+ z, e* w6 {# P) s/ A
这几项在设计时 一般情况中间的Appli 是必选,8 ?0 ^# d* h, \/ F
第1项Boot 就是片内Flash的工程代码,
! w; m; V- H" z; c( ~3 Z" H第2项Appli 就是片外Flash的工程代码,
7 N, `/ V+ s% Q- @) J! E
! @5 K. o) d" D* U6 Q) U然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置9 C, m* r+ A- [& y
微信截图_20240819011110.png
/ p3 Y- N3 z) Q+ }) I) R' v4 }+ h  [- g; O7 X7 f
从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,
3 E4 p4 P' ~7 a' I! A- H0 Y: p也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。
" ^2 U4 |2 T3 M  i3 J3 b
( r3 X- o4 k2 w3 S: R4 o& ~一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:
1 u2 c. c1 y( i) |  n1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ," |: `: B( `/ n: g0 Q4 X/ v
2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,
- d" U; {" Z% e/ Y
: _( _- b# F4 C" y% x. U# m0 g这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,% ^4 ?# M& i, i3 M6 H2 p& A
但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。$ O( g! r! T/ [! d/ y3 u  E
加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。
6 x3 {7 V% K% e% a9 {9 T3 w" e3 A% U* F5 g+ l( j2 r

* R  F/ G  i* B2 bSTM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。! K/ Y! f5 \, @

' J, N) t, q2 @! ?8 }+ A; L+ C
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
无
回归(Regression)
解除运行以允许完全调试的过程
打开

+ O: }, Z+ `, [: j' ~3 k
/ ^3 o! k; x" y7 A9 e9 k& }H7S7系列的安全功能 有很多特性,
5 ^6 ^! h' g# l; [; D 微信截图_20240819093000.png
/ ?! {+ {4 b& qST官方安全特性介绍
) Y6 N# l8 g+ ]+ P# B0 h" {7 q8 L* M+ I

% i- l/ I8 {5 l# p( ]# BSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能。
( Z2 h# a6 Z( I  n( D1 L! j8 L+ f/ b! D: |
STiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:
6 s, A. j9 b" W! x• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,
( G2 `# a9 V# S5 f然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。# q+ N. C* @9 ?* @3 H
• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然
9 Z, T2 b. b* N后检查代码的完整性 (2),然后在解密后安装 (3)。* e1 Z6 h0 V/ x2 e# ~: C
官方文档2 `1 d" J  X# I" L0 `9 }+ Y

; f6 p7 l4 i* P0 ZOEMiRoT服务  O# s# r' E1 }0 u8 |8 G
1) 安全启动 (信任根服务):
- n8 n9 i; L, N" z" W+ b它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。 ! d0 b' n% R! |7 t& S6 l
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。; L. }7 O6 b/ G
2) 安全固件更新 : 7 B+ g" T) @' f/ P9 j0 A6 I
它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 并 完整性 在解密后安装之前验证代码的
5 W  Y4 d, Z8 n; w4 j9 y" L
; l& {  E% m% U1 l% a OEMIROT_20240819134910.png
4 h( _7 J) U, s+ F9 W( n+ |从图中可以看到,OEMiRoT 服务程序保存在片内的Flash
3 j' B6 U: l! Q; Z" G" Z$ x
' N8 b+ i# z, y  N' L
官方文档
! w/ ]4 k: a$ A6 h4 P9 M6 H5 e8 c# c% B+ @
下面是两种安全机制的不同启动流程:
% E8 x+ P  u- e3 V: l5 B
' o' ~) h0 E  ~3 y4 s6 Q9 W8 @1 s# t
8 D, k5 m2 q% L
Security_STM32H7S-BootPath.png
6 B$ t! K- @8 T& e; p! M9 b& F' Y% T& k  L- U1 {
调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
# \7 ^) J# i/ P9 t7 D3 w4 p这两个选项被称为调试身份验证方法。
2 j1 s! X9 B& l5 C5 m调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。& p* M6 F9 k4 @
7 }6 S( e* i9 c6 f1 i' U
! x# q# Q+ k  h/ I9 x! H
在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:
' v+ F' \  H9 N/ y5 ]- [
; l, z4 b. a( ?) y1 }4 p. f - 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。' {% k2 {- G8 k+ ?
- 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。
& f+ R: f7 S) v1 M4 n- ^- [0 ^( ?* z/ F5 q! O# _/ k1 _
使用密码方法时,只能进行完全回归。/ Z5 c. e7 e: o
下图显示了用户如何使用密码方法触发调试身份验证服务。: w8 c' L2 w& E( s$ V
1 `5 `8 |2 C) T' i+ Z  `# V
微信截图_20240819162238.png 5 T/ e2 b$ s( H9 q) x6 t0 |
要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。
0 W0 E" a, f; }- }  b" L. Z
& R5 R* v$ J2 c: r使用证书调试身份验证概述1 H% ?+ ^- ^7 L% q4 ?" J1 W
为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。, n8 |0 ^+ Z- q) t- N* ]
- ~+ I' S' H& W% X3 o4 b

8 k/ f, H- Q! A2 e. g$ d& P# H0 h+ a( e$ O
调试认证 参考手册 AN6008
3 h# s7 f) n5 |: s, A9 x6 U4 \- C# Z2 R9 i% T9 X/ `8 C
$ |3 \( |0 y# ~6 u* E) v  f& \; T

# o8 \2 y0 G6 Z0 T2 X4 ^
7 k. L) d3 v3 m. l. f. c, C2 Y. T+ `) Z  |2 S# K  B. j) A& Z+ p) B

: j4 ?5 H6 z5 d  m+ E; B
赞 收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似技术帖

官网相关资源

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