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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
' y) F6 J% ~! |; ~  {. F2 d( c
这是一款基于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

; t6 [( A7 z/ O1 @5 N$ ~$ CSTM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化. u, r" ^/ T* H5 d& c
H7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,& l( d1 w1 F2 X! g" j6 ]
但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,
; S* v' d; r  b因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些,
3 F2 v) ^3 @* s  w0 n/ [: Y/ n
- g0 P- l, P: Y' C( k) q这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。' Y$ b3 v3 A% u7 e5 N
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
% Z1 z. P$ R4 b$ i% G7 u然后在CubeMX中 也对该系列芯片进行了深度支持,
0 T" i# c* o& I* |; ~在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,
6 S1 Z, H( D1 C  ^1 v首先就是在 Project Manager选项卡中 多了 2项7 z0 ]* {. A2 f" B5 |
微信截图_20240819010413.png
: `) T5 ?4 b" X2 e: H! d这几项在设计时 一般情况中间的Appli 是必选,
* a+ E4 Q% S. J+ D+ D6 t4 O第1项Boot 就是片内Flash的工程代码,' n/ [, }- q0 G5 _$ P, t. u
第2项Appli 就是片外Flash的工程代码,
6 G; c% i3 m2 G0 v7 G
) W4 R' @# N) \' |( r! S然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置, ]6 C2 X5 q4 r# m4 b8 G
微信截图_20240819011110.png 4 O3 u. Q7 R. f, e( K5 N
- R" L! \# M8 a9 n
从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,
0 |+ d& C, M; |0 o也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。( Q& V  P! k, s, A& I' d" k
; z8 U: I' W+ r5 q# f. h4 D: ?' M
一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:  r$ [& c8 y4 }
1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,
; L, ~; W4 y* P0 e2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,: B# v- L% \0 g0 \8 r* T$ J: `5 i+ {

0 {- t6 w+ n& y2 @/ ?' i这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
9 _3 Y  s7 ?, N: v& t但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。
* |; G  G! N$ s' i+ [加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。* [8 u" z9 `4 w$ _4 c$ ~

! v3 {+ p% A- t$ Y1 R2 z, D( Q; P- S( |0 d/ ?: Y
STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。' _+ R5 C4 C+ w
, ~) X2 v4 S) d& h1 S
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
无
回归(Regression)
解除运行以允许完全调试的过程
打开

' K4 f+ I4 V) }% X. ?! d1 \- P( X. H% S) u: Y  G; c& {
H7S7系列的安全功能 有很多特性,# k7 N& u6 s# E6 V
微信截图_20240819093000.png
, K, E2 w1 E% Y; n, SST官方安全特性介绍, _( r3 L# o3 k& P
, \  g4 G3 @1 y) V+ B2 Y, z

) b! R5 k6 a1 `" f& H( rSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能。 % d  l) x2 A; H/ X- P; i
+ {% c9 r4 t. Q* U! I$ \# d
STiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:! N8 w' R- ]3 A# M% T, B$ x& i8 U! o
• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,6 h' d7 S) D+ g
然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。# t1 ]( ~7 X# X1 K4 p
• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然. c) D+ l7 H& h
后检查代码的完整性 (2),然后在解密后安装 (3)。
9 O4 k7 V4 S% d; }( j7 b4 u官方文档* V( N% {) _" ?% h8 i

1 W6 o8 n) @4 U! hOEMiRoT服务
% _4 t  W0 P0 i( Z- @1) 安全启动 (信任根服务): 9 v! N8 j" H! Z
它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。
. _) c- D/ v% |( @! s: a2 m
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。3 j, J& K9 l& X+ X' x* d. O  p
2) 安全固件更新 :
/ f- e; i  C2 [0 s0 N它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 并 完整性 在解密后安装之前验证代码的 3 \! s- n" u- B- C2 M
) p8 l6 `9 y* g4 E. s# m$ t
OEMIROT_20240819134910.png
( y- N6 ?9 ?+ \6 c从图中可以看到,OEMiRoT 服务程序保存在片内的Flash, l" N9 o- ^: P0 s- ]: W. g) n3 G

, R9 y) z9 S3 k( r2 ]. _官方文档
+ S8 s6 D6 A6 @0 B/ W* [9 J) N/ s" S: o, G1 S+ e/ w
下面是两种安全机制的不同启动流程:* e. X9 Z0 P1 `  X! f* S  G$ a4 f

9 L" Q' j; s8 u7 w
- h4 Y; F6 b9 \. f! @. t8 u2 b Security_STM32H7S-BootPath.png
1 f' ?& N2 m: |% ~5 t6 E$ l3 U3 y, [7 [
2 l4 l) w. T5 Q* t, X调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
# g! ]) @( Q; q7 A' F" K这两个选项被称为调试身份验证方法。
; t+ T' |# S& |5 N调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。  H8 a$ l5 T2 i/ N& Z: O3 }

) }8 O) K: r; f  T% r/ W4 Y1 s3 l5 F
在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:
+ t6 w. N+ }& q- L% {3 K' Y
  n4 f' e" @% [* u# q/ b2 l% c& ^ - 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。4 P5 d! e$ o( v+ z+ J% ]* i' Z% c
- 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。
+ j( D8 @  p: R1 S3 b3 A* ]/ T9 _0 A; }) O
使用密码方法时,只能进行完全回归。$ E0 g/ |" @. l5 F% C
下图显示了用户如何使用密码方法触发调试身份验证服务。9 ~* m; H* h& P& G# T

, i5 a+ T+ M2 J9 n( x8 q 微信截图_20240819162238.png
' @' ?$ p* E, e. G要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。' f" `# Z3 @2 y

7 W  ~0 O4 i4 t使用证书调试身份验证概述
& p0 X$ k6 T  N为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。
: E7 k, L: \5 z6 t
; J' q8 f& Q2 g& o( l2 j/ q; k2 N1 R# M: |. _- [5 ]' O

5 g$ i5 S# K" E3 k4 q( w调试认证 参考手册 AN60085 L) q9 R5 Q  M& k
: {  ]# c- s# n! l

  J' @3 l/ \( ~: I
6 F7 Y" R1 p7 F
4 ?  L7 t% `- d5 H. ~
2 `) u0 a  W1 ?0 b, k! C7 s' e  z& L0 @; @" Y& u" P
赞 收藏 评论0 发布时间:2024-8-19 16:40

举报

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