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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。
6 ?) v/ \  f. p0 }* i0 N
这是一款基于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

" U* `0 O: T" L" Z8 V: k3 qSTM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化
, y4 k0 y: B2 m4 UH7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,
% g- D1 O5 E( i- Z/ n  q2 g( E但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,
: ~) q6 o* }2 ?# [因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些, * ^9 B1 {8 P, A0 p& z

- p: H) q# T+ H& Y7 e这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。" d3 L+ `/ C9 |9 G
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
2 s5 w. \6 X4 x, D# C+ H6 k1 `; m然后在CubeMX中 也对该系列芯片进行了深度支持,
" q+ @, `( f! z' w在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,
- P, ]5 s9 v9 {  s9 h5 p# H& @: D首先就是在 Project Manager选项卡中 多了 2项
$ e) p/ Q( v% M: j, w 微信截图_20240819010413.png . d% U( w( o* S2 X5 x9 b
这几项在设计时 一般情况中间的Appli 是必选,+ ~$ h" ?* E" x' U
第1项Boot 就是片内Flash的工程代码,
: i- K7 z9 S8 {6 k第2项Appli 就是片外Flash的工程代码,
6 z+ R3 `. N9 B3 C% y# O$ H3 k" t( Q- Q4 J
然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置
5 S# P3 M: t+ R4 B- ^ 微信截图_20240819011110.png & W0 ]3 O. w" ?

9 @( {2 |5 h; }2 {5 F" ?# q从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,
' _7 @8 Q' F& ^. I5 q8 G也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。5 o# `: e6 L9 H
5 Y% i# g* f& b8 Q  d
一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:$ H/ U( t4 B- \5 T5 h
1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,- M. y) R2 U+ ~1 \# F
2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,2 R) h3 X/ Q. E

# l" W' D" u" B% q! o5 J- m3 U这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
' O1 k) ]- z  A6 q1 h& b但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。
: [! H9 ]" z9 H2 s加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。5 t; A0 q* u6 d& _
' G. d' ?( D- P

8 f. p2 w, r* w$ `STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。0 s8 O5 w+ Z2 |

4 o1 W( Z6 w4 `0 N5 u- c1 b" G& ?
产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
无
回归(Regression)
解除运行以允许完全调试的过程
打开
' [/ _! h2 d) [6 Y  e+ M: g

7 F0 a  j& z; H- Z$ s6 pH7S7系列的安全功能 有很多特性,) [% N' B+ e7 ?1 W
微信截图_20240819093000.png ( T1 k) T( V+ w: R
ST官方安全特性介绍
( K: g/ R' d; O& m' M" @' ?7 x  f, k. o  o

# ]7 r8 V0 I2 o  y' g- ?. N/ ZSTiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能。
  ~" J4 m+ @4 a+ ^  a) ]5 |. H9 `( i6 ]5 j, U. A
STiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:
" b" C1 V8 C2 N/ P3 h* b& t• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,
; ^6 Z8 J' a5 E1 I) A4 {+ E然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。
  d$ [9 n) I8 c0 W+ K• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然
; D3 w' c2 a) Y* A后检查代码的完整性 (2),然后在解密后安装 (3)。
( H. [. e/ ~4 y, M% k5 x官方文档: x1 y4 q* C4 L" |# [

, O! B$ l' O$ t) V9 \8 yOEMiRoT服务! \: E) c. G) m
1) 安全启动 (信任根服务): ! B0 V$ `: \8 ]$ d- A$ R: b
它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。 9 r! @3 d" X# ~( i8 R8 [
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。% k5 Z* f* n- x! u5 l3 ~2 q$ f
2) 安全固件更新 : ' z% Y6 a; ]2 j2 T' C* p
它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 并 完整性 在解密后安装之前验证代码的
) T( J4 _8 G7 B7 m5 K
' G3 V# m0 J, m0 B* p3 B OEMIROT_20240819134910.png
2 I4 Q2 V! F; c6 b9 L: |$ u从图中可以看到,OEMiRoT 服务程序保存在片内的Flash
8 `: J) R# T1 C8 S1 b! I5 j% Q
# c3 R" x( k( _" Q2 @
官方文档
, _1 t; |+ f  [- j
, f# l- {# T" b下面是两种安全机制的不同启动流程:
. X# ]$ V% }, j( n9 S- D

, w7 V4 I) i$ u3 u5 g
9 c- b# M% C4 i& d$ u Security_STM32H7S-BootPath.png 8 X0 S! W& I1 T! E" J$ u

  u5 g" J$ \$ K调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
" G* M8 t$ R) {这两个选项被称为调试身份验证方法。
6 p+ J/ j9 r& e8 b2 _调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。
$ e4 s) ?9 R* F+ }9 ^2 z, w' U$ ^# z" ~

6 f; P+ I9 R9 L- N& U8 D在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:
5 {- b# m* P4 W7 O7 ]8 ^, i, U% P* D$ F2 O# }5 u, _
- 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。
1 ]# `9 x3 Z4 m/ U6 e2 s - 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。5 C$ H& a' p; R+ @( A$ n

; B. o5 I  w. h$ t9 Y5 b" J使用密码方法时,只能进行完全回归。& a* R7 {, v7 o5 ^3 @6 E7 K
下图显示了用户如何使用密码方法触发调试身份验证服务。
+ V. h2 U; f5 e$ U( G' X, t7 w
& U$ \! H( o8 b 微信截图_20240819162238.png + O1 Q) M, c' ~" ~
要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。$ g1 W4 b& T3 F' F

* l4 G' W, N! R% |9 D使用证书调试身份验证概述
* _& ^$ S5 C" \! W为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。3 R6 ?* p! _+ M6 \

! H7 Y% J7 S; _  l  R7 l( d) [/ j- j" }+ l: Q9 |$ {
, |: R4 V+ ^, T) w
调试认证 参考手册 AN6008
! j% V& ]9 C" q* m0 b% \( D' L
: U& g2 Z% J' T' d0 W  u; L4 e" o' D/ S# E: [: |# ?

2 x/ ~9 B1 C2 Y* D! D4 u* @1 f$ K, B7 G1 A8 z; R! p/ L) E4 O8 i
1 F) R  d& l# G% p4 z5 G

7 |1 f  I4 A. M& e9 k; r, x
赞 收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答

所属标签

ST中文论坛活动

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


最新内容

相似技术帖

官网相关资源

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