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

【STM32U3评测】5.U3中TrustZone的学习使用

[复制链接]
jundao721 发布时间:2025-6-29 19:17
      STM32 在某些系列MCU中可以使用TrustZone技术,常用的比如L5,U5,U3等。说的简单点就是为了放置被异常代码侵扰,把系统资源分为两个独立的、硬件强制执行的安全世界(Secure World)和非安全世界(Non-Secure World)。但是这部分待遇不一样,安全部分拥有更高的特权,可以访问所有资源,包括安全和非安全资源。非安全世界只能访问非安全资源。所以应用起来就是,把重要的操作都放到安全区域,不重要的放到非安全区域。
+ T. G: h/ v2 O5 n" Q    应用起来才是硬道理。可以参照官方的例程去理解。并且了解整个的设置流程。
0 s" W/ L( r5 Q! A; _# I' D' @    首先需要打开STCubeProgrammer,连接到MCU板。然后就是设置TZEN=1,然后设置SECWM1和SECWM2,如说明所示:
( J7 ^8 D9 U. I5 p   - TZEN=1; ^% S8 S' h: {/ t$ a$ y! y8 z' h
   - SECWM1_PSTRT=0x0  SECWM1_PEND=0x7F  meaning all 128 sectors of Bank1 set as secure
, q$ A- V# ^% ~! _( q4 ^   - SECWM2_PSTRT=0x7F SECWM2_PEND=0x0   meaning all 128 sectors of Bank2 set as non_secure; d. ]* P! L- l7 O9 c: j/ Q
( ]% h/ I; Q7 [& C- ^% i% I: d$ A  Z
, S7 ^2 b, M0 T. h8 O. ^. E
    还需要设置SBoot0R 和 NSBoot0R,如图1和图2所示:/ E8 H% v. c3 h" [5 x
   5-1.png ! L9 }2 A: A6 b
  图13 y; Y9 o/ o" o+ x$ c) w

! d, c$ d. r" N( X. P0 f8 @ 5-2.png 5 \6 \( V0 p/ t) d( [8 H* E# h1 Z
图25 x0 C! w" R- _
0 F' f" a. x$ z1 I0 m$ i
   设置好之后,要记得点击右边的apply,否则设置无效,如图3所示。
" [6 e) b0 c4 Z8 I2 J; L 5-3.png 5 C: {& ~3 F* B
图3
, _3 w: F+ k% [: C3 J$ O/ m. B: a1 E9 R# z
  这样基本就设置好了,打开cubemx,设置GPIO,将需要放到secure区域的外设都设置到Secure区域,不需要的就设置为NS区域,如图4所示:
4 q& y6 a7 }' |& @+ `6 O 5-4.png 9 J5 T* p* \" M: F6 b
图4
9 e% ]3 S( I# E' e2 o" f7 K& i/ j( p
, I5 u# ]& c  m/ S* d- D  设置好时钟,如果需要把时钟部分放到secure区域,右击选择System Clock Mux,选择secure即可。如图5所示:
" b5 M, C: F  Y7 A) B; H 5-5.png
( D5 ?2 t: o) u' C图57 w' u, i4 \7 Q9 o6 \2 c
7 V, H+ r9 R' u% M0 J
  还需要设置GTZC_S,如图6所示:" ~3 j, U- f  D4 Z* a
5-6.png 4 o' Q! G. r% J* }! \' e
图64 J+ T# `, X) _5 X: W9 t9 M: R9 K
( ]1 D" M5 j6 a( p" `
  这些设置好后,生成project。
1 H- J: b" b9 @  : L) I. q6 e5 w: a5 i0 F% m8 e- i# T
  在项目中会有两个项目,一个是secure,一个是Nsecure。要先编译S项目,生成secure_nsclib.o文件,这是连接NS项目的接口,否则NS项目编译会报错。
3 O8 m( d# O  |( m! b  再编译NS项目。1 A& z2 S2 x! M# r8 H& X
  编译后,Download NS项目,然后Download S 项目。
; F/ F8 ?8 g" l# X  B: G5 A  这个过程可以通过右击项目名,选择active需要用的project。Download后,按复位键可正常运行程序,先点灯试试,如图7所示:( v- @* W- ^! o2 S
   5-7.gif
6 {& P* O: x; l9 m9 h. y5 w图7
8 C0 R+ {8 X" w! M. i. g& S  当然也可以Debug NSProject。( \9 K8 W0 q0 U8 S( N
  看B站上有官方的详细介绍,仔细学习,应该理解起来更容易。2 W5 W) Z) J( Q0 w" V" k, j

( ^9 R1 N& K5 c2 n# w' Q. f5 e( P7 ?  e
收藏 评论0 发布时间:2025-6-29 19:17

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版