搜索
查看: 1033|回复: 0

[实战经验] 修改STM32L5的存储空间安全属性的设置

[复制链接]

该用户从未签到

450

主题

498

帖子

3

蝴蝶豆

社区小助手

最后登录
2020-7-30
发表于 2020-7-14 14:29:32 | 显示全部楼层 |阅读模式
11.jpg

STM32L5在trustzone使能情况下使用,需要用户根据应用要求,规划好Flash和SRAM上的安全区域和非安全区域。由于trustzone环境下CPU对存储区访问规则的限制,这套规划方案会涉及到几方面的设置
• IDE的链接文件
• 选项字节配置:Flash WM、启动地址
• 寄存器配置:GTZC、SAU

目前STM32CubeL5固件包里所有例程采用相同的存储区域划分方案
• 区域划分粒度较粗,不太符合实际应用需求
• 512K片上Flash
  前256K作为安全区域
  后256K作为非安全区域
  前256K安全区域里的结尾8K用作NSC区域
• 256K片上SRAM
  前96K作为安全区域
  后160K作为非安全区域

TZ使能时访问规则回顾:(存储区上的)取指

22.png

TZ使能时访问规则回顾:存储区上的数据访问

33.png

分析
我们以STM32CubeL5固件包里GPIO_Toggle_TrustZone例子来分析
• 当前的默认存储区划分方案,是如何通过以下措施来实现的
• 寄存器配置:GTZC、SAU
• 选项字节配置:Flash WM、启动地址
• IDE的链接文件
• 然后按照自己的应用需求,修改对应配置

原有存储区域划分方案

44.png

原有存储区域划分方案的实现. SAU配置

55.png

原有存储区域划分方案的实现. 物理存储区配置

66.png

原有存储区域划分方案的实现. IDE链接文件

以IAR为例
Linker文件里区域的指定,要和SAU、物理存储区域的实际安全设定、启动地址,相匹配

77.png

目标:根据应用需求调整存储区域划分方案

88.png

修改选项字节

99.png

修改GTZC.MPCBB配置

10.png

修改SAU配置

111.png

修改代码

222.png

修改linker文件

333.png


点击可下载完整文档>>>

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-28 15:10 , Processed in 0.167315 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表