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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
9 [6 P7 k. P6 i. R3 D) x. y7 e
这是一款基于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
5 Q9 I! `6 p; l0 j" Y8 W
STM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化' ]* _: g7 t( ~- J
H7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,6 A1 o/ I3 p! s% g
但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说," q& ]1 v# Y# w; S2 v9 j
因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些,
6 S8 C* E0 Q$ T& y/ }3 K3 V: g8 p8 O* X, Y) K' B
这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。/ N3 ^+ \+ i- Z
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
/ ~0 ^$ K5 d3 y3 D( b% p然后在CubeMX中 也对该系列芯片进行了深度支持,. d' o. ^+ r" z  M: Y
在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,9 n# \' u* r+ h5 \
首先就是在 Project Manager选项卡中 多了 2项
4 }1 z9 X! o4 h% X! o1 ^* h8 N, ? 微信截图_20240819010413.png 4 h1 y3 F& m& u8 F. V
这几项在设计时 一般情况中间的Appli 是必选,
' s; k' s0 D' F4 _' D- O% {% M: ~第1项Boot 就是片内Flash的工程代码,$ c, ^8 t& }) \
第2项Appli 就是片外Flash的工程代码,# F* T+ T8 `  W1 ~+ P
8 g/ u" q# L) B* u- g' T; P
然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置
% H, N9 o7 n0 G9 y 微信截图_20240819011110.png ) ~3 l- ~+ X' ]3 d4 N% [

. U2 Z( K( s% T0 t9 _$ A# f从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,+ H4 c# v5 T$ w/ ^2 d/ ]
也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。8 w4 }/ J: f: W3 R3 W0 f
. |$ p9 @1 L- S) k, K5 M" V
一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:6 w. i7 {4 D6 }) ~7 E+ ]; f# i
1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,
: l; `. T+ w/ t, `) a+ H/ a2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,8 B/ B$ ~6 I, {2 [' R" _

3 l  \/ }) I$ b% z8 x8 B这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
6 B# e. {/ y' p- K$ H# G+ [4 t但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。
$ f% k( N8 n" \) n加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。+ S3 Q' ?: }( j9 u% B

+ f- h5 O5 d2 F
" ?9 `0 M+ a9 cSTM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。4 e- M, p' @- o. K7 h; J( Z

% H+ R- F4 s, C7 ?# e2 w# N
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
回归(Regression)
解除运行以允许完全调试的过程
打开
& L. ?/ _: n: @2 {
9 U' Y7 P, L9 Y
H7S7系列的安全功能 有很多特性,
& {% y  o% p. a3 W/ }( [ 微信截图_20240819093000.png
$ H9 H/ |+ O9 y! OST官方安全特性介绍
0 o" V# T5 W# S: g5 G  o+ T1 u, u/ p* P2 m' a- Z" W9 b

& ?# m) Z# h5 q! v; gSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能/ O6 R% _- `) m! {4 W& B! y

6 v+ _2 s0 V, Q6 N' q$ iSTiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:6 I" i) ]7 K) p8 R& w) j! w+ j
• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,4 _; F- \8 G: {6 y; U/ v5 y) J
然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。
0 W( r3 J* d4 c" d6 ?• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然
, P- B( d2 k6 i6 D& [% l" x; O后检查代码的完整性 (2),然后在解密后安装 (3)。2 S- V7 K6 n; I- y7 [
官方文档, W' Z( o: D4 w" c1 ~# o. ~
+ ]5 z7 P* W; O9 @" s
OEMiRoT服务# b# `: g# B& F
1) 安全启动 (信任根服务):
. A% v6 Y: c8 c它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。 " v) K4 X: @; f1 k5 E4 r2 R9 ]
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。
    6 T9 C( ^; p0 N, o7 y1 G
2) 安全固件更新
6 L2 R! }1 d/ I' b/ U' h它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 完整性 在解密后安装之前验证代码的
2 K9 d: }. ?* E- I* l; B: T; I1 m- d6 s) ?
OEMIROT_20240819134910.png
6 s' K3 U) {5 d" S从图中可以看到,OEMiRoT 服务程序保存在片内的Flash
4 G6 d# b5 c" C

/ I9 o- O, b, x3 T官方文档
$ h/ g* `% T2 }( [# C7 m
; W% x- g' H! d$ n, w9 Z下面是两种安全机制的不同启动流程:
. {9 R2 N/ ?4 g2 p

3 R- k, U. \4 `, I* s. C* U
+ o9 Q' ?1 `* ]& Y Security_STM32H7S-BootPath.png
9 }0 }& z& H) \/ a+ m5 q
9 f0 J! y, Q# J; P) z调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
7 S5 R/ g3 e1 F4 ^& @这两个选项被称为调试身份验证方法。
% n# N* f+ I/ M, T* L& T调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。7 U0 d) e6 ], i8 ]. j

. f, n: R2 v2 ]4 i- y1 _, z, q/ Y! Q5 v- H
在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:
) \+ ]6 S+ }6 T; D# U: a9 O% B
: G  g' b3 e  y7 u" K - 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。
4 Q% [* `$ F( W3 L" x8 [ - 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。) Z# a, \9 t* G5 _* T
% E5 ?5 p$ Y' {" L0 U
使用密码方法时,只能进行完全回归。
% H' i0 \  r! S2 o5 ]8 y3 I9 j下图显示了用户如何使用密码方法触发调试身份验证服务。
: M7 [- v' m4 I* D5 u$ d
! s5 x/ H# C8 `% E/ u3 f 微信截图_20240819162238.png
% ~8 l0 D, Z1 y% E要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。
0 v8 ^; N7 e! h
: ?% z; j6 @* y5 Z- I使用证书调试身份验证概述
. }3 {" i( Y7 S* V3 o为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。0 @; u: I2 b( R
& Q! E& {, b- m9 C
6 _3 j/ O' G  i9 D
# I$ T8 I5 x% U' T% q$ Z
调试认证 参考手册 AN60081 C3 T8 g- G3 ?: ^
5 Y  v7 t( d9 c0 F, ^5 J5 b
1 K, b0 M6 ~& Z( b! S4 c$ N$ |- v
% O% \/ m- u: V0 D: b6 s, @

/ M9 s* }/ m) x- X1 z# l& j0 q. _; M

5 l5 u& e" Z& E
收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版