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

STM32L5 系列微控制器和 TrustZone® 开发入门

[复制链接]
STMCU小助手 发布时间:2023-2-12 22:56
引言
! f! s% |6 s7 o0 t) x# {4 b
0 N7 u1 V' E3 l8 _8 g+ m
本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。
6 ?% L: u! G0 ?: O本应用笔记提供了为 Arm® Cortex®- m33(Armv8_M 架构)的器件构建和调试安全和非安全应用程序的基础知识。 本文首先概述 Arm® Cortex®-M33 和 TrustZone®概念。 . V4 ~( y1 O, Q4 U' v1 n0 i
本应用笔记还描述当通过 TZEN 选项位启用 TrustZone®之后,如何使用 EWARM 和 MDKARM 调试 STM32L5 系列微控制器。
, ?& a- H, M& D7 o3 {  x3 Z) |4 m8 a
1 概述) Y$ e( I% w7 v, V8 V6 G5 U2 v
本文档适用于 STM32L5 系列单核 Arm®的微控制器。
, q% p4 S2 z3 F0 ^0 |3 o$ V8 I 提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.* v8 Q$ U0 I7 l  {# H

3 f$ u# Q0 o, k1 S! x 2 Arm® Cortex®-M33 内核概述! Z% Y" e$ J% o& R  o! l
Arm® Cortex®-M33 是首次完整的集成了 ARMv8 指令集及 TrustZone 安全技术和数字信号处理功能。该处理器支 持大量灵活的配置选项,以促进各种应用程序的部署,并提供专用的协处理器接口,用于加速经常使用的计算密集 型操作。Cortex®-M33 提供性能、功率、安全性和生产效率之间的最佳平衡。 : _* H6 b6 w( R1 y$ @& f

9 c" S5 ^9 q# N" N2 r. c3 Armv8-M 的 TrustZone®概念
& @! b" Q1 D2 h2 h( H' p/ r: V4 T带有 TrustZone®的 Cortex®-M33 处理器有两个安全状态(参见图 1)和一些相关的特性: 2 z" r0 ?( i& ?' r
• 安全状态
& L9 Q/ x; t4 A1 h• 非安全状态
5 {: B' R3 W' J• 四个堆栈和四个堆栈指针寄存器 ' I) t) m% \, p! l0 \9 v6 E9 i# ~
• 硬件栈限制检查
( c/ I! K6 _# D4 ?" \• 支持类似于可编程 MPU 的安全属性单元(SAU)9 D" `6 ~, a4 P2 G0 G4 `/ J
• 系统安全通知接口
( G5 I6 v9 @& J* v( W2 Y: @5 P2 {• 限定非安全(NS)域只能通过预定义的入口点访问安全代码
6 e4 l, ~: H' n& c# Z8 i• 当切换到非安全时,异常硬件自动保存和清除安全寄存器状态 8 U* b$ A! f/ k5 j4 O
• 中断或异常控制的扩展存储,SysTick
# r+ }' {$ `% I: T5 ]• 针对每个安全和非安全部分的内存保护单元。- i  o/ Y2 n; E/ M2 s9 N
+ ]" L( d. R! M9 y
@(FGBI(4N@F@_@Z~ZRLI6S4.png 2 D& _2 ^! P' |& ^( V, h
提示 TrustZone®被启用后,系统默认在安全状态下启动。0 g5 g: r3 X; D* N" @7 x6 s4 m
, n2 O7 @) h) \2 H, V
4 SAU / IDAU - TrustZone®概念 - [( j2 t/ s, q" D0 q( f
TrustZone® 安全功能由 FLASH_OPTR 寄存器中的 TZEN 位激活。TrustZone®被启用后,SAU 和 IDAU 根据安全 和非安全状态定义访问权限。
8 Y& ]: B; f# q) F% T • IDAU:将第一个内存分区配置为安全或非安全可调用属性。IDAU 内存映射分区是不可配置的,它由硬件配 置决定。
; Z; U. D  x) P+ y8 A• SAU:8 个区域,用于覆盖 IDAU 以设置安全区域和确认非安全区域。1 Y9 S5 U: X2 p7 }1 ?6 [) b+ D
• 首先根据 IDAU 安全属性选择安全状态,然后结合 SAU 安全属性选择安全状态。最终的安全属性是 IDAU 和 SAU 的最高安全设置。. E7 a2 A0 |; `% L/ z( U
• “安全”安全属性具有最高的安全优先级,非安全可调用的安全优先级次之,非安全属性的安全优先级最低。默 认情况下,任何未定义的区域都是安全的
4 O! _5 |, u; q( Q, i8 P

8 W* K! g0 i2 A TrustZone®安全被激活之后,默认安全状态如下:
/ r! V% ]7 |$ L • CPU: Cortex®-M33 在复位后处于安全状态。启动地址必须在安全区域中。( g8 V0 W7 o( [! L* h
• 内存映射:SAU 在复位后是完全安全的。整个内存映射是完全安全的。最多有 8 个 SAU 可配置区域用于安 全属性。0 R' u3 N# B* M7 s( u# I
• Flash 存储器:
7 l: o) y0 j: F– Flash 安全区域是由安全水印用户选项定义的。所有闪存都是完全安全的。
$ y4 L) {& o; H# j/ O– Flash 块的功能在复位后是非安全的。即使所有的闪存通过 IDAU/SAU 和闪存安全水印选项字节配置都 是非安全的,也可以使用基于闪存块的特性配置易失性安全区域:使用 Flash 块的配置寄存器,任何页 面都可动态编程为安全模式。2 B! R2 l7 x5 g. T; ?# ?
– SRAM:所有 SRAM 在复位后是安全的。基于内存保护块的控制器(MPCBB)是安全的。$ x: }& O# u3 P& K! {7 g
• 非安全内存视图与其他 Cortex®-M 内核相同。
1 p2 [, X( Y3 A" B8 u2 e! r • 安全内存空间分为两种内存类型:
1 a- z) }9 D6 G2 M- c – 安全:包含安全程序代码和数据,如栈区和堆区。
( M3 u1 ~9 G6 B( O0 S: W! F– 非安全可调用(NSC):包含入口函数(例如 API 的入口点),这是为了防止非安全应用程序分为无效 入口点。0 A9 D1 n7 M, i! R
! h6 `( K! B5 i- t$ S
5 调试模式
$ R; c2 F2 j) g  ?! B5.1  侵入式调试
; P! y% W% e4 h: ^2 v, f1 w  j6 _ 侵入式调试定义为一种调试过程 - 用户控制并观察处理器活动。大多数调试功能被认为是侵入式调试,因为它们允 许用户停止处理器并修改其状态。
% V* Y! y2 M2 a: i/ x. k4 mDBGEN 和 SPIDEN 控件都具有侵入式调试权限。
" S: X0 J: z8 e+ s2 M2 S7 \& [* @: o) y
5.2 非侵入式调试
. j4 ]7 w# P# @& `3 z非侵入式调试定义为一种调试过程 - 用户观察处理器但不进行控制。嵌入式跟踪宏单元™(ETM)接口和性能监视 器寄存器是非侵入式调试的特性。
( b1 n  D4 C3 f5 QNIDEN 和 SPNIDEN 控件都具有非侵入式调试权限。允许侵入式调试的时候总是允许非侵入式调试。/ s! d% S' w" B7 M6 `: _" j

, K" G- c6 ?: R- U$ D% q( r' f完整版请查看:附件3 l! ?3 R9 U& g# x$ S* o
STM32L5 系列微控制器和 TrustZone® 开发入门.pdf (6.59 MB, 下载次数: 6)
收藏 评论0 发布时间:2023-2-12 22:56

举报

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