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

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

[复制链接]
KEY1 发布时间:2024-8-19 16:40
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,
微信截图_20240818163548.png

STM32H7RS 系列 不同于H7系列,产品特性和开发方式都有变化
H7RS系列  官方宣称是 低成本的器件,但是我搜了下淘宝的价格,还是比较高的, 可能是由于零售渠道的原因,
但是分析这个芯片的特点, 可以判断出来 它的设计制造成本是比常规H7系列要低,为什么这么说,
因为相对于H7系列 ,优化了资源配置, 缩减了一些不常用的接口和资源, 加入了更多了安全相关功能,我发现的最主要的几点是 :1它的内部Flash很小,只有64KB ,2 取消了MIPI接口,一般这个接口的屏幕要贵一些,

这个芯片内部Flash设计的比较小,只有64K,它的主要程序一般情况需要存放在外部Flash,它提供了高速的XSPI接口以方便从外部Flash加载程序,同时支持在下载和加载程序的过程中对存放在外部Flash代码进行加密解密。
通过高速的XSPI接口 连接外部的Flash,可以使设计的程序扩展空间非常大,不再需要顾虑片内Flash的容量不足;
然后在CubeMX中 也对该系列芯片进行了深度支持,
在CubeMX中, 创建该系列芯片时,与常规的芯片环境相比,增加了许多新的选项,
首先就是在 Project Manager选项卡中 多了 2项
微信截图_20240819010413.png
这几项在设计时 一般情况中间的Appli 是必选,
第1项Boot 就是片内Flash的工程代码,
第2项Appli 就是片外Flash的工程代码,

然后在 Tools 选项卡中 是对内存分配,MPU分配相关的设置
微信截图_20240819011110.png

从CubeMX中 基本可以看到, 配置过程比一般的芯片开发要复杂一些,但是 这些配置内容是无法避免的,就算用其他的芯片,
也需要类似的配置过程,只是有可能是用户直接在代码中实现的,而非在配置界面进行配置的。

一般情况下要使用单片机进行复杂的的GUI程序开发,需要面对 几个问题:
1 需要较多的 RAM 空间作为 图像缓存,对于800*400及以上的屏幕就需要外扩片外RAM ,
2一些静态图片和字库会占用较多的Flash空间,这些内容一般情况下片内Flash是放不下的,所以还得扩展片外Flash,

这些必要的过程,CubeMX已经将相关的配置加入了其中,所以会使得配置内容比常规的开发要多一些步骤,
但是整体上来看,原本复杂的开发过程中的关键步骤现在可以在CubeMX中进行部分配置了,对整个代码项目是便捷的。
加上TouchGFX 可以给项目生成一套完整的可以直接运行的工程代码,如果使用官方开发板原理图的接口,那项目开发起来简直就是飞速了。


STM32H7RS 生命周期的产品状态与 STM32H5 新系列类似。该生命周期集成了对调试验证功能的支持。

产品状态
说明
可进行的过渡状态
开放状态(Open)
用于无限制开发的状态。HUK  隐藏,用户可自由试验,调试器打开
预置状态
预置状态(Provisioning)
用于提供密钥、确保固件安全和设置选项字节的状态
关闭、锁定、回归
关闭(Closed)
最终产品交付状态 -  允许调试验证(调试重启或回归)
回归
锁定(Locked)
最终产品交付状态 - 无法进行调试验证。
回归(Regression)
解除运行以允许完全调试的过程
打开


H7S7系列的安全功能 有很多特性,
微信截图_20240819093000.png
ST官方安全特性介绍


STiRoT 代表 ST 不可变(不可更改)信任根,是第一个启动阶段。STiRoT 的目标是实现 SESIP 3 级认证。由于 STiRoT 需要硬件加密功能,因此仅在 STM32H7Sxx 产品线上提供,STM32H7R系列没有此功能

STiRoT 嵌入在 STM32H7Sxx 的不可变区域中,提供两种服务:
• 安全启动(信任服务根)是一个不可更改的代码,在系统重置后始终会被执行(1)。它能激活运行时保护,
然后在每次执行前验证应用程序 (2) 代码的真实性和完整性 (3)。
• 安全固件更新应用程序是一个不可变的代码,它能检测到新的固件镜像可用。它会检查其真实性 (1),然
后检查代码的完整性 (2),然后在解密后安装 (3)。
官方文档

OEMiRoT服务
1) 安全启动 (信任根服务):
它是每次系统重置后运行的不可变代码。它会激活 STM32 运行时保护,并在每次执行之前验证应用程序代码的真实性和完整性。
  • 完整性 :确保不会运行任何损坏或恶意修改的固件。
  • 真实性 :验证固件来自可信且已知的来源,以防止未经授权的实体安装和执行代码。
2) 安全固件更新
它是一个不可变的代码,用于检测新固件映像是否可用,检查其 真实性 完整性 在解密后安装之前验证代码的

OEMIROT_20240819134910.png
从图中可以看到,OEMiRoT 服务程序保存在片内的Flash

官方文档

下面是两种安全机制的不同启动流程:


Security_STM32H7S-BootPath.png

调试认证 当 STM32 产品状态未打开时,用户可以通过向 STM32 设备发送密码或证书链来触发调试验证服务。
这两个选项被称为调试身份验证方法。
调试验证协议使用 STM32 设备调试访问端口 0 (DAP0) 和 DBGMCU IP 进行通信。


在使用调试身份验证服务之前,用户必须为 STM32 提供证书。调试身份验证允许两种凭证:密码或证书:

- 密码方法,用户必须在 STM32 内提供密码哈希值(SHA256)。
- 证书方法,用户必须提供调试身份验证根证书和调试身份验证授权权限(用于回归和/或调试重启)所携带公钥的哈希值。

使用密码方法时,只能进行完全回归。
下图显示了用户如何使用密码方法触发调试身份验证服务。

微信截图_20240819162238.png
要访问调试验证功能,主机必须向 STM32 设备发送密码。STM32 设备收到密码后,会验证密码的哈希值是否与密钥存储区内的哈希值一致。

使用证书调试身份验证概述
为帮助理解使用证书调试身份验证的过程,本节将重点介绍最简单的证书链。但实际上,STM32 设备接收的是证书链,而不是一个证书。调试验证证书链的原理与 X509 证书链类似,但这里使用的证书格式是专有的。



调试认证 参考手册 AN6008






收藏 评论0 发布时间:2024-8-19 16:40

举报

0个回答

所属标签

ST中文论坛活动

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


最新内容

相似分享

官网相关资源

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