修改STM32L5的存储空间安全属性的设置

STM32单片机 2020-07-13



STM32L5在trustzone使能情况下使用,需要用户根据应用要求,规划好Flash和SRAM上的安全区域和非安全区域。由于trustzone环境下CPU对存储区访问规则的限制,这套规划方案会涉及到几方面的设置

• IDE的链接文件

• 选项字节配置:Flash WM、启动地址

• 寄存器配置:GTZC、SAU


目前STM32CubeL5固件包里所有例程采用相同的存储区域划分方案

• 区域划分粒度较粗,不太符合实际应用需求

• 512K片上Flash

前256K作为安全区域

后256K作为非安全区域

前256K安全区域里的结尾8K用作NSC区域

• 256K片上SRAM

前96K作为安全区域

后160K作为非安全区域

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


(点击图片可放大查看)

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


(点击图片可放大查看)

分析

我们以STM32CubeL5固件包里GPIO_Toggle_TrustZone例子来分析

• 当前的默认存储区划分方案,是如何通过以下措施来实现的

• 寄存器配置:GTZC、SAU

• 选项字节配置:Flash WM、启动地址

• IDE的链接文件

• 然后按照自己的应用需求,修改对应配置


原有存储区域划分方案


(点击图片可放大查看)

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


(点击图片可放大查看)


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


(点击图片可放大查看)

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


以IAR为例

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

(点击图片可放大查看)

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


(点击图片可放大查看)

修改选项字节


(点击图片可放大查看)


修改GTZC.MPCBB配置


(点击图片可放大查看)


修改SAU配置


(点击图片可放大查看)

修改代码


(点击图片可放大查看)

修改linker文件


(点击图片可放大查看)


  END




STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦