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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
  p! D6 T$ f( a+ Z/ D3 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

2 M! B* D5 O; d8 u1 mSTM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化
/ B2 \( ^- y" \( EH7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,* H9 G1 v0 d6 d& e$ y) h
但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,/ B, u6 [' G+ S0 ^
因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些,
; q: S, _) g8 a5 j0 L0 O8 d0 Z. j1 d
这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。- J; n* j+ ^; x# o) T* e
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
; |/ R3 u' t, N% I/ U/ s3 y. i* c然后在CubeMX中 也对该系列芯片进行了深度支持,
  m# i5 W) \( Z& i, e; v在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,
, n1 ]1 {9 X' u首先就是在 Project Manager选项卡中 多了 2项
! G1 N* r- z5 s6 t 微信截图_20240819010413.png * o- q, y9 H4 K8 R
这几项在设计时 一般情况中间的Appli 是必选,# g4 x/ V8 ^6 P# E. G& e$ s( k$ d
第1项Boot 就是片内Flash的工程代码,
' O! u! b. E* n0 s. Q第2项Appli 就是片外Flash的工程代码," R$ j2 O) g( c3 U" ]6 O; A- z0 w

. |* q- ~, v6 h% U- n& [& `然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置% D2 @0 `6 U6 O; \6 W& r! @
微信截图_20240819011110.png
. a( q3 B& K) s& U; E$ |% f( o& r5 t$ C5 A' P
从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,5 A/ T6 y- V$ v* M
也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。
  Q* q6 U; Y. n( Q) X3 P* Z/ K/ H
# [" _7 W8 b1 e8 a* W" H4 r, e一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:
3 d- g/ {4 t3 l& N  h# `' q1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,
6 K9 e* S. H4 K) e( v+ w* R) p2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,* q, f# c' v/ p

) B( R8 ]2 a# x& e4 k# H. g这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
! y% w2 J) V7 ~0 s但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。4 @; X2 X0 r' v3 P
加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。- @, M$ G2 v, |2 S, k

+ Q9 Z9 f5 S- W$ I
" a6 x& f# Q% X; q7 ~STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。
1 U' Q' w# |; i/ g' V5 f# T" M- T( L& i
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
回归(Regression)
解除运行以允许完全调试的过程
打开

5 `, ?: a3 X6 |
1 e, H% D1 s* o) q9 IH7S7系列的安全功能 有很多特性,8 [- S; f5 S; }; S
微信截图_20240819093000.png % B& n( [/ q# z+ H
ST官方安全特性介绍
2 d% `! d7 N$ W
( s- `& t  X- m
2 U( Y& e# }7 ~2 P9 s+ f1 kSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能, B$ y/ D% I; O

5 C$ A' U! e+ o- G, rSTiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:/ g$ T9 s3 ^$ [: K) K0 z
• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,: ^. a* _# E* G
然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。
- J* F- f" E0 x# z• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然# m2 x/ T" F" q0 o
后检查代码的完整性 (2),然后在解密后安装 (3)。9 H, _' H8 X1 r! x. \2 l
官方文档5 [5 g4 [, z8 {4 A6 V& w% K/ i( o

1 t$ E  E5 @: a+ W  pOEMiRoT服务: w  E0 n1 y3 D5 l
1) 安全启动 (信任根服务): + \/ i4 [! T  L+ \0 s
它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。 8 Q- Y4 j9 b6 h( ]
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。: z, `; _$ F4 H' t; j. N' E# d
2) 安全固件更新 + G9 C) l) v; T, {% e9 u
它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 完整性 在解密后安装之前验证代码的
; B) d5 i6 a) J8 D) F" t
! D8 e* K- x0 a1 z( c7 Q OEMIROT_20240819134910.png ! P7 E& G' B6 u3 {/ {( [& M4 s
从图中可以看到,OEMiRoT 服务程序保存在片内的Flash
- D( t7 D0 y, X3 P, p; k) E
8 n6 f# g, s* t
官方文档
3 d5 B0 ?. z5 Z/ |# v: M6 G) {$ u
6 }/ Y2 b0 X' U8 v" \! }下面是两种安全机制的不同启动流程:/ w" n! |- }" i8 `5 R4 o% i* k0 U

" @$ ?( C2 y  L2 H6 O; {
* {; C+ ^# T& N( B7 q- a3 ]0 F% K+ u Security_STM32H7S-BootPath.png ( u+ [2 j! J- X7 s+ c0 o

" u6 }, N1 I1 @! ^1 v$ S' E调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
! P) w: E! E" p2 P5 d6 d: q这两个选项被称为调试身份验证方法。
+ o8 O) @5 z7 H9 R! m% F调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。
; E1 g/ D. D5 D. M+ k/ M" S/ W- i  M3 F1 v/ d7 P
" E8 ~- c9 o  {( \% P- X% u
在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:# k) U* b/ E9 Y- _: k& g
7 V6 }, J7 T0 `
- 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。
$ d% o1 D+ A1 O0 g# L - 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。
$ o, p7 E" L! {; S' W. o4 \$ ^" \4 L6 a( @5 o. ]/ D
使用密码方法时,只能进行完全回归。3 p% I7 N) @5 K2 k; J
下图显示了用户如何使用密码方法触发调试身份验证服务。
" V# B* N! r- ~3 e" X3 u) ]- U9 N1 N; O4 c7 S% s1 r# S
微信截图_20240819162238.png 6 C* X2 @# [- c# G" L
要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。
4 k( e1 {+ }- \: p% _! k0 P3 b8 V8 S
5 ^. O0 v8 X! c" k% \使用证书调试身份验证概述
  }! z# T7 N7 \7 `9 V$ u/ ?& `为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。
7 S  \! x) d+ x" W! Z/ l9 _/ b& D% H+ w% b- U

4 y5 {% c# z5 \! R1 f4 X& N+ j: ~3 Z$ b0 a8 ~( J
调试认证 参考手册 AN60084 w& D9 O0 u: V, ]' m

& Y8 j% Y8 p4 q( L0 S( L0 I+ a, ~1 K& Q  m$ V9 @/ p' I5 m
; b7 k2 n2 M  H. b) L: a8 p7 d
" r' s' h, J( `

* |/ m/ P% y3 u$ I
( J9 K' S+ v4 M
收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版