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

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

[复制链接]
jundao721 发布时间:2025-6-29 19:17
      STM32 在某些系列MCU中可以使用TrustZone技术,常用的比如L5,U5,U3等。说的简单点就是为了放置被异常代码侵扰,把系统资源分为两个独立的、硬件强制执行的安全世界(Secure World)和非安全世界(Non-Secure World)。但是这部分待遇不一样,安全部分拥有更高的特权,可以访问所有资源,包括安全和非安全资源。非安全世界只能访问非安全资源。所以应用起来就是,把重要的操作都放到安全区域,不重要的放到非安全区域。, I" F9 m0 u# S! o3 l# U
    应用起来才是硬道理。可以参照官方的例程去理解。并且了解整个的设置流程。
1 H9 X8 b! G& D! O    首先需要打开STCubeProgrammer,连接到MCU板。然后就是设置TZEN=1,然后设置SECWM1和SECWM2,如说明所示:
( l: Z  s2 i& ]' u/ [" R   - TZEN=18 {" I0 T* ~* F; _* m
   - SECWM1_PSTRT=0x0  SECWM1_PEND=0x7F  meaning all 128 sectors of Bank1 set as secure4 ?' Q- `3 l( x# e& q  v* E. p" h
   - SECWM2_PSTRT=0x7F SECWM2_PEND=0x0   meaning all 128 sectors of Bank2 set as non_secure' N6 d/ n4 H8 c( J

  P+ B' q7 \: o1 ^9 R# C

7 m' O2 N' h- A1 |1 p) I    还需要设置SBoot0R 和 NSBoot0R,如图1和图2所示:
4 E( \7 [7 x5 D! v7 Y   5-1.png
. o7 y" }4 k0 T2 H1 ~) z/ N- D! W9 d  图12 R0 a+ c0 [  y2 V

% s  I+ V* e7 K; ]4 [, y& |* D9 Q3 N# w 5-2.png ! H' w* l) e7 {# v
图2
( w, b3 M0 e0 A* p
) X( H% s* @( v8 \5 h7 \8 b. x   设置好之后,要记得点击右边的apply,否则设置无效,如图3所示。! ^; q7 D$ }1 Z, n9 n2 f
5-3.png , y( w. ~4 @' J* \& ?! S8 R- j
图35 k$ G' L" O$ c4 s, ^9 w+ ~

# V4 C4 f) i5 m/ P0 N8 J1 P  这样基本就设置好了,打开cubemx,设置GPIO,将需要放到secure区域的外设都设置到Secure区域,不需要的就设置为NS区域,如图4所示:9 i4 ?) ~% H2 L3 d3 P% ?  K
5-4.png
9 f+ u, x, v9 @2 f图4: S; p- q. Q! ]& r) F

# ?2 w; p$ ^  z$ L* I3 f2 m/ C  设置好时钟,如果需要把时钟部分放到secure区域,右击选择System Clock Mux,选择secure即可。如图5所示:& d6 m' {5 }: p8 `" g* }+ U
5-5.png ( S, R) z4 {! k0 p7 n2 p
图5% U% y% N$ L+ J# G
, j; z. c# a) z# @6 ?. f
  还需要设置GTZC_S,如图6所示:
  y$ W  ~3 t+ s( T' m% g1 ?  C* q 5-6.png " H$ R: }6 M$ R6 F, h
图6
" s! ]! C3 P# ]
0 b3 h2 T$ `1 N3 a  D3 t. \  这些设置好后,生成project。9 o: O* O( Q' G* S
  2 U- y$ Z. m/ }2 b0 z" P8 b
  在项目中会有两个项目,一个是secure,一个是Nsecure。要先编译S项目,生成secure_nsclib.o文件,这是连接NS项目的接口,否则NS项目编译会报错。* {  I/ Y4 j+ B. J$ z: e7 c  ]
  再编译NS项目。
: t  F8 |2 I. k6 h7 l" Y, f  编译后,Download NS项目,然后Download S 项目。- H6 |1 m6 `+ z2 Y7 X
  这个过程可以通过右击项目名,选择active需要用的project。Download后,按复位键可正常运行程序,先点灯试试,如图7所示:
8 _& C7 ]2 x- D# H1 A4 M4 g0 s   5-7.gif
. [4 k* n! C& z, s% e) {图76 O8 Z% k/ o% \  O9 N
  当然也可以Debug NSProject。
- Y4 G4 e' @3 a) m% ?- i6 ^  看B站上有官方的详细介绍,仔细学习,应该理解起来更容易。( i6 b& w. \( ^  m7 ?: A' i+ {

% I% V( E6 \( p. P+ v  V( f
收藏 评论0 发布时间:2025-6-29 19:17

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版