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

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

[复制链接]
eefishing 发布时间:2020-7-14 14:29
11.jpg

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

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

9 Z- t0 J5 f7 c; e! v- ~- |/ `
TZ使能时访问规则回顾:(存储区上的)取指
  u' O0 h" x! V0 e7 \0 ?0 X+ L
22.png
+ ^( O9 {8 Y/ T. O2 N' C( [* O
TZ使能时访问规则回顾:存储区上的数据访问

/ A+ l  P1 X( s3 {2 \2 p
33.png
4 _, _) y3 N$ u; c# e" i2 n6 d& R
分析
我们以STM32CubeL5固件包里GPIO_Toggle_TrustZone例子来分析
• 当前的默认存储区划分方案,是如何通过以下措施来实现的
• 寄存器配置:GTZC、SAU
• 选项字节配置:Flash WM、启动地址
• IDE的链接文件
• 然后按照自己的应用需求,修改对应配置
# _# }1 f+ `' r) {
原有存储区域划分方案
& W4 [- e" i: ^# O: _9 f. D
44.png
9 e4 w; ^4 q, u* F- W7 Y% [
原有存储区域划分方案的实现. SAU配置

& O+ J: q1 h: h# j4 W. J3 D
55.png
+ l6 Z% F9 [' i: M+ @; O
原有存储区域划分方案的实现. 物理存储区配置

5 y* t1 ?3 k" L, h
66.png
7 F( ~3 Q2 N( |* a( K: g! I
原有存储区域划分方案的实现. IDE链接文件
3 T2 y  V6 p3 g/ a. i$ e: G4 }
以IAR为例
Linker文件里区域的指定,要和SAU、物理存储区域的实际安全设定、启动地址,相匹配

5 Z* R3 D: q; j: q8 }& e/ I7 p
77.png

8 A: |* v$ w! v
目标:根据应用需求调整存储区域划分方案

+ r3 n" ]/ p/ V; Z3 |+ h& f; V
88.png

  P8 x  u8 y& ^* `, m; N" k( I
修改选项字节
5 M+ c1 d# }' M6 \" q) M
99.png

8 D; o5 T, {* b2 ]0 m% e; T5 b
修改GTZC.MPCBB配置

0 {3 r& _2 C6 b  _* U, ^
10.png

7 n+ Y0 H/ m6 }2 I* B
修改SAU配置

: o+ M- W8 [& b/ r
111.png

9 G- f, Q' N8 D- ?- y0 F
修改代码

/ F. P8 h; V  p. g7 f* e6 D
222.png

8 R, P( ~* H( z& o: d" I4 M. v- {
修改linker文件

+ p3 s6 ?8 w( v* j& Z9 X3 J+ e
333.png

& R; n5 g- T4 z. Z7 D& K
9 j4 C' i* S% O) ?# _点击可下载完整文档>>># d; L4 ~9 O4 h. H* X5 C8 _
$ ^3 m% r7 j6 ^& K* b
收藏 评论0 发布时间:2020-7-14 14:29

举报

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