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

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

[复制链接]
eefishing 发布时间:2020-7-14 14:29
11.jpg
7 ~+ ]( v. E" ^
STM32L5在trustzone使能情况下使用,需要用户根据应用要求,规划好Flash和SRAM上的安全区域和非安全区域。由于trustzone环境下CPU对存储区访问规则的限制,这套规划方案会涉及到几方面的设置
• IDE的链接文件
• 选项字节配置:Flash WM、启动地址
• 寄存器配置:GTZC、SAU

, n# Y8 k7 \5 |1 `, b/ i" X5 h
目前STM32CubeL5固件包里所有例程采用相同的存储区域划分方案
• 区域划分粒度较粗,不太符合实际应用需求
• 512K片上Flash
  前256K作为安全区域
  后256K作为非安全区域
  前256K安全区域里的结尾8K用作NSC区域
• 256K片上SRAM
  前96K作为安全区域
  后160K作为非安全区域
! v/ @+ y2 S( {1 ~
TZ使能时访问规则回顾:(存储区上的)取指
9 Y# d4 j' }# U' ]% r7 g+ s
22.png

1 K2 o$ G" ?' a3 Z/ P4 w( W, g$ T
TZ使能时访问规则回顾:存储区上的数据访问

' N: I, q$ y% @/ D2 r
33.png
& f$ \0 H# o: S4 u# p
分析
我们以STM32CubeL5固件包里GPIO_Toggle_TrustZone例子来分析
• 当前的默认存储区划分方案,是如何通过以下措施来实现的
• 寄存器配置:GTZC、SAU
• 选项字节配置:Flash WM、启动地址
• IDE的链接文件
• 然后按照自己的应用需求,修改对应配置
! T' f1 f0 e. T. `9 P
原有存储区域划分方案

& g' u' S# s' C. J; C
44.png
: N5 A  f7 B2 w* W+ I/ |! B
原有存储区域划分方案的实现. SAU配置

+ H% C) `( ~/ ~2 L5 [
55.png
# H0 T, Q( I* ?# \7 G
原有存储区域划分方案的实现. 物理存储区配置

4 O9 _% O' q+ F: X' x
66.png

  P* F, K$ d) i+ ?4 f/ J1 Q4 e
原有存储区域划分方案的实现. IDE链接文件
) W/ a* q  S5 W! d& P; ?/ ~# K
以IAR为例
Linker文件里区域的指定,要和SAU、物理存储区域的实际安全设定、启动地址,相匹配

: r' a  a3 p0 u( F* _. j" ~
77.png

+ e4 D9 g/ a: @  c
目标:根据应用需求调整存储区域划分方案

: l* d1 L7 o& _1 A  r# A
88.png

+ k5 {, R( j8 q/ a- i
修改选项字节
3 ~" ~! A; s* @( ]
99.png

) p9 d  P% ?8 d: O! Q: s
修改GTZC.MPCBB配置
; ^( b5 j6 x3 W4 R  K
10.png

+ O0 a0 o& \. w; l# P6 k5 @
修改SAU配置
. d2 G; {* o5 u
111.png

- h) p1 p0 @* Y& N  T
修改代码
# N! t" `. `+ R  R& J
222.png
4 X& D) H* r9 T5 C) o! O- o
修改linker文件

  T4 |9 d- I2 u) M% x
333.png

! `* x, K3 G5 \  o9 O8 D, e- c, h9 n  r2 v  ?3 e: }
点击可下载完整文档>>>
/ l: z) ~2 W; ?8 V
1 Q4 g( _5 B7 u+ _
收藏 评论0 发布时间:2020-7-14 14:29

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版