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

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

[复制链接]
jundao721 发布时间:2025-6-29 19:17
      STM32 在某些系列MCU中可以使用TrustZone技术,常用的比如L5,U5,U3等。说的简单点就是为了放置被异常代码侵扰,把系统资源分为两个独立的、硬件强制执行的安全世界(Secure World)和非安全世界(Non-Secure World)。但是这部分待遇不一样,安全部分拥有更高的特权,可以访问所有资源,包括安全和非安全资源。非安全世界只能访问非安全资源。所以应用起来就是,把重要的操作都放到安全区域,不重要的放到非安全区域。1 w/ h2 s! c, }1 g* ~" Z: l
    应用起来才是硬道理。可以参照官方的例程去理解。并且了解整个的设置流程。
% T) Y; Q9 o* T: N5 m; B    首先需要打开STCubeProgrammer,连接到MCU板。然后就是设置TZEN=1,然后设置SECWM1和SECWM2,如说明所示:( h% L' ~1 z- @6 D% ~8 \( w
   - TZEN=1
/ S: l, \& w9 K( M8 e7 e   - SECWM1_PSTRT=0x0  SECWM1_PEND=0x7F  meaning all 128 sectors of Bank1 set as secure
/ [4 S$ ^( L- @3 H5 F! f   - SECWM2_PSTRT=0x7F SECWM2_PEND=0x0   meaning all 128 sectors of Bank2 set as non_secure
. K" {( f9 J! G! Y" t% q( f) E% F; y) y; e. z
' [4 ~. X8 \) ]2 B% N6 T4 C) L5 k. M
    还需要设置SBoot0R 和 NSBoot0R,如图1和图2所示:
0 y/ W1 H/ Y4 G: L0 l5 Z% L% c/ W   5-1.png 5 f. r+ E: S5 p, @9 o# g4 D
  图1% O; l6 ^, F2 f* G

" Q4 N4 u/ S6 k9 L9 z/ [ 5-2.png
* e1 Y6 G% c$ W: {/ c$ {图28 f" Y4 n3 p4 A, M8 t* E- \( U
5 m, {2 J: S2 h3 l
   设置好之后,要记得点击右边的apply,否则设置无效,如图3所示。, J: @, Q3 B6 l
5-3.png 1 K# V4 [! a, L+ I# ~) y: Z1 [
图3! F9 V; |; k; m4 l1 r

, j& o! u! t5 q  这样基本就设置好了,打开cubemx,设置GPIO,将需要放到secure区域的外设都设置到Secure区域,不需要的就设置为NS区域,如图4所示:- s/ m' H; `# i8 t. ?5 m
5-4.png ; N/ h6 ^1 G+ d- D' {$ {  T
图4
8 i  Q( J0 b( S1 }; q+ x& J0 S
9 \- N! c; v$ l  设置好时钟,如果需要把时钟部分放到secure区域,右击选择System Clock Mux,选择secure即可。如图5所示:
* K- q8 y9 y% k6 |& o9 |, K2 B 5-5.png , R( u: F4 p) d/ Q& x/ J0 L( r
图5" L$ p1 v% M& h) `1 M) h1 b) Y
" f+ }* q; t, b) c- [
  还需要设置GTZC_S,如图6所示:7 {7 x/ v9 r+ P8 J/ l
5-6.png : ]2 z, c3 Z# \7 ^; o- D4 d! Y, C
图6
7 k0 A1 a6 T# L9 P  D# }+ r
  A2 u: J% C3 b  G  这些设置好后,生成project。
) `% D/ N5 G+ e) |+ a1 V  
& a4 U$ |" P: k: Y5 m4 A5 _$ ]+ t  在项目中会有两个项目,一个是secure,一个是Nsecure。要先编译S项目,生成secure_nsclib.o文件,这是连接NS项目的接口,否则NS项目编译会报错。
& ]. j. i4 x% H6 }3 @: ]# p; c0 k  再编译NS项目。7 P  L2 u$ w- m$ A, G, F; ^, J$ X1 d
  编译后,Download NS项目,然后Download S 项目。
8 @5 `7 N& G- C7 m: S+ C  这个过程可以通过右击项目名,选择active需要用的project。Download后,按复位键可正常运行程序,先点灯试试,如图7所示:1 y9 k0 p% _9 K
   5-7.gif % x& N) L. ~# w- J* x
图7
6 Q' U3 u: C) l# ]  C  当然也可以Debug NSProject。1 y9 e; v  j# U1 U5 ^
  看B站上有官方的详细介绍,仔细学习,应该理解起来更容易。
/ x+ i" z, k9 t# R! x# |, f
, m: b- _  v# P% a; H7 a
赞 收藏 评论0 发布时间:2025-6-29 19:17

举报

0个回答

所属标签

相似技术帖

官网相关资源

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