7 ~+ ]( v. E" ^ STM32L5在trustzone使能情况下使用,需要用户根据应用要求,规划好Flash和SRAM上的安全区域和非安全区域。由于trustzone环境下CPU对存储区访问规则的限制,这套规划方案会涉及到几方面的设置 • IDE的链接文件 • 选项字节配置:Flash WM、启动地址 • 寄存器配置:GTZC、SAU 目前STM32CubeL5固件包里所有例程采用相同的存储区域划分方案 • 区域划分粒度较粗,不太符合实际应用需求 • 512K片上Flash 前256K作为安全区域 后256K作为非安全区域 前256K安全区域里的结尾8K用作NSC区域 • 256K片上SRAM 前96K作为安全区域 后160K作为非安全区域 ! v/ @+ y2 S( {1 ~ TZ使能时访问规则回顾:(存储区上的)取指 9 Y# d4 j' }# U' ]% r7 g+ sTZ使能时访问规则回顾:存储区上的数据访问 分析 我们以STM32CubeL5固件包里GPIO_Toggle_TrustZone例子来分析 • 当前的默认存储区划分方案,是如何通过以下措施来实现的 • 寄存器配置:GTZC、SAU • 选项字节配置:Flash WM、启动地址 • IDE的链接文件 • 然后按照自己的应用需求,修改对应配置 ! T' f1 f0 e. T. `9 P 原有存储区域划分方案 原有存储区域划分方案的实现. SAU配置 原有存储区域划分方案的实现. 物理存储区配置 原有存储区域划分方案的实现. IDE链接文件 ) W/ a* q S5 W! d& P; ?/ ~# K 以IAR为例 Linker文件里区域的指定,要和SAU、物理存储区域的实际安全设定、启动地址,相匹配 目标:根据应用需求调整存储区域划分方案 修改选项字节 3 ~" ~! A; s* @( ]修改GTZC.MPCBB配置 ; ^( b5 j6 x3 W4 R K修改SAU配置 . d2 G; {* o5 u修改代码 # N! t" `. `+ R R& J修改linker文件 , e- c, h9 n r2 v ?3 e: } 点击可下载完整文档>>> |
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32L5 系列微控制器和 TrustZone® 开发入门
STM32CubeL5 TFM 应用程序入门
STM32CubeIDE 中基于 STM32L5 系列的项目入门
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32U5对比STM32L5有 哪些更新?
STM32L5 中如何关闭 TrustZone ?
修改STM32L5的存储空间安全属性的设置
使用STM32L5的OTFDEC和ICACHE功能实时高效运行片外Flash中的加密代码
使用STM32L5 TrustZone特性控制调试端口访问,保护片上代码安全