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

【STM32H5 评测】Part2 TrustZone示例代码工程移植重建

[复制链接]
神经蛙2233 发布时间:2026-10-27 17:47

评测对象:NUCLEO-H5E5ZJ

测试目标:搭建 TrustZone 安全 / 非安全分区工程,验证分区隔离效果,评估对现有代码改动量与资源开销。

一、分析示例代码

TrustZone工程示例代码的目录位于STM32Cube_FW_H5_V1.7.0\Projects\NUCLEO-H5E5ZJ\Templates\TrustZoneEnabled,里面分别有Secure和None-Secure的代码,支持MDK\IAR和CubeIDE三种构建方式。

参考示例工程说明配置OptionBytes

  • TZEN=B4
  • SECWM1_STRT=0x0  SECWM1_END=0xFF
  • SECWM2_STRT=0x1  SECWM2_END=0x0  


image.png

image.png

image.png

1.存储器布局

H5系列芯片通过IDAU控制地址访问,采用了“别名”的机制,CPU在Secure状态的下看到的flash、ram以及外设地址别从0x0c 0x30 0x50开始。

2.Secure代码做的事情

① HAL初始化

② Cache初始化(可选)

③ 设置系统隔离

  1. 使能GTZC时钟
  2. SRAM分块隔离
  3. 定义并填充MPCBB结构体
  4. 使用MPCBB结构体设置SRAM3 SRAM4 SRAM5
  5. Flash隔离(通过OB进行设置)

④ GTZC外设放行

⑤ TZIC开启中断(清非法访问标志、开中断源、NVIC)

⑥ 开启SecureFault

⑦ 系统时钟初始化(可选)

⑧ 挂起Systick

⑨ 跳转到NS执行代码

⑩ 实现HAL_GTZC_TZIC_Callback

知识点:TZIC 中断处理跨界违规 ,SecureFault异常处理Secure世界内部的非法访问。

3.None-Secure代码做的事情

① HAL初始化

② 注册两个重点要的回调函数

③ SecureFault_Callback响应异常

④ SecureError_Callback响应GTZC和TZIC的中断

⑤ 设置系统时钟

⑥ 初始化外设

⑦ 执行用户代码

赞 收藏 评论0 发布时间:2026-10-27 17:47

举报

0个回答

所属标签

相似技术帖

官网相关资源

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