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

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

[复制链接]
STMCU小助手 发布时间:2023-2-12 22:56
引言 7 ~4 Z% k. `1 X# _# q
5 |: U; l9 J$ a, x7 i* f! R
本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。 # {4 L8 L6 z; R+ e5 N& X: \
本应用笔记提供了为 Arm® Cortex®- m33(Armv8_M 架构)的器件构建和调试安全和非安全应用程序的基础知识。 本文首先概述 Arm® Cortex®-M33 和 TrustZone®概念。
  H/ ?7 D5 M8 L: R1 i8 [2 e* m本应用笔记还描述当通过 TZEN 选项位启用 TrustZone®之后,如何使用 EWARM 和 MDKARM 调试 STM32L5 系列微控制器。& A2 i+ Y: c1 j! {& e) ?# _# @9 W
' ?' c/ z. Q& r6 Q1 o  \$ f
1 概述
4 }  Q/ E7 S* K0 k& }本文档适用于 STM32L5 系列单核 Arm®的微控制器。% Y) |' T& i, K! b  e& D
提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.& r2 m0 s: W( ]3 z3 w
2 K* \! p2 P8 O) a: d3 k# x  ^* l
2 Arm® Cortex®-M33 内核概述
0 X, }7 H2 c! ~+ a( g; b' ~5 W: c Arm® Cortex®-M33 是首次完整的集成了 ARMv8 指令集及 TrustZone 安全技术和数字信号处理功能。该处理器支 持大量灵活的配置选项,以促进各种应用程序的部署,并提供专用的协处理器接口,用于加速经常使用的计算密集 型操作。Cortex®-M33 提供性能、功率、安全性和生产效率之间的最佳平衡。 5 Z3 c! F: W1 ]# z( I8 R9 s3 Q! K* l1 o
6 b; b5 h- ~! g
3 Armv8-M 的 TrustZone®概念 2 h. K- u! R5 H+ u
带有 TrustZone®的 Cortex®-M33 处理器有两个安全状态(参见图 1)和一些相关的特性:
2 z+ ~! p0 s: C) k0 Y$ q1 C• 安全状态
; x2 ^7 W4 }( O( `7 R• 非安全状态 - |$ J3 a( v9 J- @0 v' Y
• 四个堆栈和四个堆栈指针寄存器 8 |) K( ^3 P" F  N
• 硬件栈限制检查 ( D4 |3 P! R4 _" ?: w
• 支持类似于可编程 MPU 的安全属性单元(SAU)
0 \* V' G. L9 ~, |- Z" ^8 _6 w$ P • 系统安全通知接口 , T. G  w4 a, A$ L. V  Q7 U; ~, {
• 限定非安全(NS)域只能通过预定义的入口点访问安全代码
. W4 n% _6 O" H) E" s. G• 当切换到非安全时,异常硬件自动保存和清除安全寄存器状态
$ ~/ r' z8 \  h4 j0 \- ]1 u• 中断或异常控制的扩展存储,SysTick . N. }+ ^1 r; P: `; l/ U: \8 T
• 针对每个安全和非安全部分的内存保护单元。
9 ?* o" z' N3 {4 R+ }. K; A) ^% M' ~1 d; g
@(FGBI(4N@F@_@Z~ZRLI6S4.png
9 D4 |! \7 i3 t) _: k 提示 TrustZone®被启用后,系统默认在安全状态下启动。" z' Y/ x5 G6 {1 B. }; }* h. y- M
" ~- P# M- t7 o& O
4 SAU / IDAU - TrustZone®概念 5 J( b2 w6 T" U0 i* d  J. V
TrustZone® 安全功能由 FLASH_OPTR 寄存器中的 TZEN 位激活。TrustZone®被启用后,SAU 和 IDAU 根据安全 和非安全状态定义访问权限。
5 ~  R& v% g9 C! C4 {  r; _. { • IDAU:将第一个内存分区配置为安全或非安全可调用属性。IDAU 内存映射分区是不可配置的,它由硬件配 置决定。
: u  T- [5 v+ C* O  b8 i- v" ]• SAU:8 个区域,用于覆盖 IDAU 以设置安全区域和确认非安全区域。4 L4 q5 T: W9 O3 M* i8 ~: ~- f
• 首先根据 IDAU 安全属性选择安全状态,然后结合 SAU 安全属性选择安全状态。最终的安全属性是 IDAU 和 SAU 的最高安全设置。9 l* A4 V$ G; v# b  W
• “安全”安全属性具有最高的安全优先级,非安全可调用的安全优先级次之,非安全属性的安全优先级最低。默 认情况下,任何未定义的区域都是安全的
# y0 l) W% c% ~, V) p2 d5 ?( z

$ h# M5 G' M& h9 r* [1 h% U TrustZone®安全被激活之后,默认安全状态如下:
; o- a6 H! K. P • CPU: Cortex®-M33 在复位后处于安全状态。启动地址必须在安全区域中。
7 S0 I6 ]. [; l • 内存映射:SAU 在复位后是完全安全的。整个内存映射是完全安全的。最多有 8 个 SAU 可配置区域用于安 全属性。- @/ P$ M+ `" G$ C: Y( W  k
• Flash 存储器:+ @5 e# d4 ~7 A' C5 x3 f
– Flash 安全区域是由安全水印用户选项定义的。所有闪存都是完全安全的。 3 B4 ^) b% r  o5 V% |: ]) u
– Flash 块的功能在复位后是非安全的。即使所有的闪存通过 IDAU/SAU 和闪存安全水印选项字节配置都 是非安全的,也可以使用基于闪存块的特性配置易失性安全区域:使用 Flash 块的配置寄存器,任何页 面都可动态编程为安全模式。" }. t7 c0 C; H7 p- H; p
– SRAM:所有 SRAM 在复位后是安全的。基于内存保护块的控制器(MPCBB)是安全的。6 @( }( @1 X$ O, i  h
• 非安全内存视图与其他 Cortex®-M 内核相同。& D" Q* ?5 [+ i0 y
• 安全内存空间分为两种内存类型:& R* a! c+ L- y* |6 W. X8 _
– 安全:包含安全程序代码和数据,如栈区和堆区。
) ~! v: e  |4 |– 非安全可调用(NSC):包含入口函数(例如 API 的入口点),这是为了防止非安全应用程序分为无效 入口点。
* s4 T# y, Y! {1 Z; a( K$ e4 i$ n) U9 e1 N6 E9 R8 ?' `
5 调试模式 ' Q4 `! Q6 T. V% v9 o0 N
5.1  侵入式调试
0 D7 \' \% X: g! u; m9 T 侵入式调试定义为一种调试过程 - 用户控制并观察处理器活动。大多数调试功能被认为是侵入式调试,因为它们允 许用户停止处理器并修改其状态。 3 i2 R2 u& h. v+ j2 p8 t; y
DBGEN 和 SPIDEN 控件都具有侵入式调试权限。
6 i! x$ L0 S' m+ D
7 M! Q: f" k+ `! R, K( x' L# g5.2 非侵入式调试 * j2 T2 R0 s% Q
非侵入式调试定义为一种调试过程 - 用户观察处理器但不进行控制。嵌入式跟踪宏单元™(ETM)接口和性能监视 器寄存器是非侵入式调试的特性。
) ~1 E  a; m6 |9 m( q2 F! i9 ]' h  vNIDEN 和 SPNIDEN 控件都具有非侵入式调试权限。允许侵入式调试的时候总是允许非侵入式调试。
5 N5 J, S. r$ ^: R9 _: N6 R' S* v/ ^, K* N
完整版请查看:附件
1 W* P" Z" z: J' I
STM32L5 系列微控制器和 TrustZone® 开发入门.pdf (6.59 MB, 下载次数: 10)
收藏 评论0 发布时间:2023-2-12 22:56

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版