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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
, y" o3 R% h+ `) j& @2 k5 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

# Z6 j% Q+ A% O7 XSTM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化! y, w4 k4 u5 }& k/ i! M! t' Y
H7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,/ b! |  A  y) y" M% |( m" S2 h0 k
但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,% C, C% z9 B# ^$ F% q2 w
因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些, " Z8 N7 W2 t- X; W( L) B

  e9 v+ G+ b* n2 K; _这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。/ `5 `! R2 g, e* r+ E, o1 R
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
( ?0 {* n  \/ C/ o1 U6 ~  H' M2 @2 q( S然后在CubeMX中 也对该系列芯片进行了深度支持,: X3 {+ a: [7 B6 z1 t# T
在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,: K  u' ^9 B; @: b% c" b
首先就是在 Project Manager选项卡中 多了 2项
7 S/ ^6 ?* T/ k# V% w 微信截图_20240819010413.png * g0 v9 _4 j$ H" S
这几项在设计时 一般情况中间的Appli 是必选,$ @  q/ ~1 f; g9 u" w4 c1 G2 O
第1项Boot 就是片内Flash的工程代码,9 [2 z  R3 c- W) J* |
第2项Appli 就是片外Flash的工程代码,/ K" }' \1 v! w" [# a' s

7 ~: M1 U+ f9 B: ?$ F! ~( \. K0 w7 o然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置
) X: S- u4 s* O! ^) F+ V. H/ E6 h 微信截图_20240819011110.png
. l/ }  W& V6 s( ~( A, O- M! i: o$ G8 C
' r' `- c: b2 m' L8 o6 j; N. o0 ]从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,
9 q, @. A2 V1 H# ~2 y1 N也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。8 y9 k% K8 L* ?. g" t% ^
7 L$ e! V$ Z6 k
一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:& Y0 j$ A5 s1 D/ r& {8 m/ ?% M, P
1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,9 l6 v* O; h! Q
2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,
9 D6 M/ v/ O( `4 B# C, F7 S- g- _8 ]' v* g5 b
这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
0 W1 N8 ^3 d. ]( X但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。; u7 w) k3 W8 S% i5 i8 y( N- N. K
加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。
: C" H; m3 z) O% ?
# Z8 l6 f8 z9 E; h0 [3 ?1 @5 n" X$ B# y+ `' e
STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。
# n  \4 m, W! P& d6 x
0 W1 P6 V" t* Z! W2 u& T
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
回归(Regression)
解除运行以允许完全调试的过程
打开
: J( t3 ]% \# l3 P8 ?

5 r' i, V. F( Q3 XH7S7系列的安全功能 有很多特性,) _% \+ |1 B% a5 o3 }: L5 J7 q$ W% M
微信截图_20240819093000.png
# l+ f+ B7 j4 {% ~& Z* T; s5 X# NST官方安全特性介绍5 E6 Q* z( \5 B2 k  k' ]0 q2 c2 R
! E! z8 `* R% y+ D$ _. z/ l/ |

1 {$ u3 I( Q/ \3 Y: u( hSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能
! ^' m' Y) C& s/ H" S
+ a: i! k2 ?" {6 R: @% v8 l: KSTiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:) [! g) Y/ ]3 v  N1 R
• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,! W7 j* x' e7 R% H8 i8 C& K
然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。
& g# q! i( y, m/ b• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然9 Q/ \& Y2 ^- M: D( z9 e
后检查代码的完整性 (2),然后在解密后安装 (3)。
- a0 A* R2 S# }1 }$ l* ~/ e" v官方文档
7 F# E! Z% g  I# }  Z7 x4 k1 x: L( f% `9 z9 s: C5 K4 P3 a  Z. v
OEMiRoT服务
) `' S! M! T9 S1) 安全启动 (信任根服务): " T1 p& \4 D/ I, y
它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。   H8 s4 z' V  I3 a$ q- |
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。2 o+ _# l* [, K
2) 安全固件更新
% q3 y- [$ Q- Q& C4 S8 m8 H它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 完整性 在解密后安装之前验证代码的 , t$ l# F6 a& ?

, K. S; _' M& a- h- q7 h OEMIROT_20240819134910.png
. l; t% A5 m. _从图中可以看到,OEMiRoT 服务程序保存在片内的Flash) g1 f' m% x: U* ^* T3 A" P: h
3 V2 X" h, ^: g
官方文档: {+ [$ f: L  ^+ j) K2 j0 x

2 v; Z/ X" b/ G6 @下面是两种安全机制的不同启动流程:
" g; [/ o9 R( Z

& U+ H$ O: R& b3 ~( C# {7 r9 g3 W: X9 Z2 d9 s
Security_STM32H7S-BootPath.png & `6 e9 M+ v0 G" ]+ h& v! y; i1 U# l

6 Y: Y* S. Z3 }2 E7 q+ S调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。- {. m4 G( [( g. Z0 I8 [3 E
这两个选项被称为调试身份验证方法。
& x1 P; Z. ]' N+ [5 j% l调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。% M* ]' n' ]; O0 d$ F9 c
1 e: s2 ^  B: T& _/ w4 Q/ ^: j
& V  W  t) V+ o* f6 V
在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:
9 ^- i- `' X. }! x6 Q) `4 e3 d& h6 Y3 H, C: l$ M( |
- 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。8 q$ I7 j; R+ ^6 D* j4 ?
- 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。
- Y9 h2 B3 d2 W/ J* `9 p3 {" n8 p; I$ P4 y0 r+ B! D4 s% G# p9 N, z
使用密码方法时,只能进行完全回归。
5 f' t% @( T1 x" y' C下图显示了用户如何使用密码方法触发调试身份验证服务。
4 T/ q, [, e; _9 h
. T5 ]/ I/ m1 q1 V- {1 Q 微信截图_20240819162238.png
  m) R: J7 L, [要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。
0 v" A0 t1 }) A; K6 Z! I: _0 q2 Z. ~1 k2 x
使用证书调试身份验证概述/ Y- k6 Z- M) t; E% S  {
为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。: D2 x2 i5 R. y9 C( @

/ ~: [! @- W0 N
3 W* T2 z) }* ^7 `; E
6 Z3 S+ U, L0 n6 |* j2 ~调试认证 参考手册 AN60086 d. l  m1 v% ~. ]$ T3 b9 S. _4 k5 n
( U9 j& O! p1 D, @- N/ m; h

3 d/ Q( |# i8 p& N+ E0 B  C" k  a+ A6 O* _+ u) j

6 H9 H  J4 P4 O- @" `, f; O3 a- V) {" M6 B6 w$ ~

* ?" h. r) Z; f# M
收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版