|
STM32H7R7/S7系列芯片有很多新的安全特性,这是我们以往的开发设计过程中没有太关注或者较少用到的特性,但是这些特性对量产和代码保护是很有用的。 这是一款基于bootflash的MCU,有64 KB内部Flash称为 bootflash、可灵活配置的620 KB SRAM以及带Flex ECC的32 x 32 KB缓存。 STM32H7R7/S7系列支持高速外部存储器接口和XiP,专用图形系列可利用NeoChrom GPU、JPEG编解码器和LTDC实现类似MPU的GUI,
STM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化7 X& J' N4 j; _9 [' t3 q H7RS系列 官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,1 Q$ W: h, d' R* K( ^9 ]% l$ Y2 } 但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,' V D& q! `; x2 D 因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些, 7 i P1 l3 D. D 这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。 通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足; 然后在CubeMX中 也对该系列芯片进行了深度支持,% l. N" g. k3 Q8 U 在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项, 首先就是在 Project Manager选项卡中 多了 2项" u( a) s$ V( E6 B, w- ~
这几项在设计时 一般情况中间的Appli 是必选,' T0 P3 r1 @2 o* b 第1项Boot 就是片内Flash的工程代码, 第2项Appli 就是片外Flash的工程代码, 6 m% ~! p9 W9 X- K/ Z 然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置
8 O |+ u8 m. Z* X) E 从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片, 也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。8 F! i8 _' t B3 r 一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题: 1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,! \+ D2 R- B7 E0 p9 X8 n0 w 2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash, 这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,- Z S( s5 g0 z6 L" W/ x 但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。9 e C$ I6 @0 X, L$ D 加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。 STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。
H7S7系列的安全功能 有很多特性,
ST官方安全特性介绍 ! { s* ?' Y2 g* W2 Z( s STiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能。 1 R. q2 B& j. R& h: O STiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:9 S5 {. h, W7 r8 B" B5 G- X* r • 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护, 然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。; P5 r& F) @6 B {* J2 W% y1 E- J/ f • 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然 后检查代码的完整性 (2),然后在解密后安装 (3)。4 z+ O$ V" o8 Y 官方文档 OEMiRoT服务) [: V, d5 V& p/ Y& z 1) 安全启动 (信任根服务): 3 Q& B) L3 o1 ~4 `6 [ 它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。 $ S( C4 h, W! ~
它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 并 完整性 在解密后安装之前验证代码的 % C, ~3 k, L5 R l
从图中可以看到,OEMiRoT 服务程序保存在片内的Flash1 V! H% M+ ?6 Q8 u' h 官方文档 下面是两种安全机制的不同启动流程:0 E& G Y0 d/ d: D * [# Y! o+ X' ~8 }
调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。 这两个选项被称为调试身份验证方法。0 ^' G! A$ p0 h6 r 调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。 * n' i9 e: V5 h 在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:' e- ] V0 k- W$ F8 A7 b+ t - 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。5 v+ \7 W/ Y8 O' @4 U - 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。7 t" L- E. l; @: z % Y+ A( r1 T0 X8 V- g 使用密码方法时,只能进行完全回归。 下图显示了用户如何使用密码方法触发调试身份验证服务。0 t5 @& ]% S4 C% L7 H7 i& K
要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。 使用证书调试身份验证概述 为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。- l$ b; x- `) D. l2 x 2 O7 b c6 g( v 调试认证 参考手册 AN6008 - q, r/ r9 A9 k : }1 I8 i. s$ i# P 5 _, y) b3 ~* E % R+ O& x# p% _$ S- ` |
【STM32H735G-DK 评测】二、利用LTDC在 LCD 上打印字符串
ST软件工具我知道之STM32CubeProg和TouchGFX
2025国庆中秋活动体验报告6 OpenAMP实现数据交互
2025国庆中秋活动体验报告5 CustomContainer中控件与参数适配
2025国庆中秋活动体验报告4_解析传感器数据
2025国庆中秋活动体验报告3-STM32H745之CM4内核不定长中断接收
2025国庆中秋活动体验报告2 健康监测界面设计
【学习有礼】 STM32H7R/S线上课程,快速入手!
AN5617中OpenAMP Linker configuration中的一处勘误
STM32H755双核通信学习资料
微信公众号
手机版