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

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

[复制链接]
STMCU小助手 发布时间:2023-2-12 22:56
引言
2 J, W1 s7 D6 Q/ }' r4 W7 t
+ [* q" N; T% W5 \$ J; Z: w; u
本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。
% R2 T, e1 w/ `6 N  F本应用笔记提供了为 Arm® Cortex®- m33(Armv8_M 架构)的器件构建和调试安全和非安全应用程序的基础知识。 本文首先概述 Arm® Cortex®-M33 和 TrustZone®概念。 % u  w+ D4 H3 J  ~: r- L8 r3 {
本应用笔记还描述当通过 TZEN 选项位启用 TrustZone®之后,如何使用 EWARM 和 MDKARM 调试 STM32L5 系列微控制器。
3 t% m" R! |- A3 N) G6 c8 V  Y/ T  o
1 概述" S" `# ]  ?7 o1 \1 q9 E
本文档适用于 STM32L5 系列单核 Arm®的微控制器。
2 w+ t  s; h% ~" { 提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
5 @3 G& z  }4 P8 K4 }; L6 `0 v% `9 P
2 Arm® Cortex®-M33 内核概述
8 k6 a: [* F9 W% {* u4 b. _ Arm® Cortex®-M33 是首次完整的集成了 ARMv8 指令集及 TrustZone 安全技术和数字信号处理功能。该处理器支 持大量灵活的配置选项,以促进各种应用程序的部署,并提供专用的协处理器接口,用于加速经常使用的计算密集 型操作。Cortex®-M33 提供性能、功率、安全性和生产效率之间的最佳平衡。
* ?; \' ?( W1 o- `( c, ]" Q0 n: r/ }$ c) v( s; s6 `
3 Armv8-M 的 TrustZone®概念
. i0 A; q' Y2 ~带有 TrustZone®的 Cortex®-M33 处理器有两个安全状态(参见图 1)和一些相关的特性:
$ B, ^# F3 P9 s• 安全状态
4 F3 X/ _2 b% k7 ^: P• 非安全状态
+ q1 a; X4 c$ k9 v6 R• 四个堆栈和四个堆栈指针寄存器
7 T% r( }) W. i' E• 硬件栈限制检查 7 b$ N5 [  k9 f+ L* ^3 [
• 支持类似于可编程 MPU 的安全属性单元(SAU)6 n% D+ t$ E, R/ E( _/ l+ J
• 系统安全通知接口
" d" d4 s# t  R. @6 x• 限定非安全(NS)域只能通过预定义的入口点访问安全代码 " b5 `  {+ x- O/ l
• 当切换到非安全时,异常硬件自动保存和清除安全寄存器状态
! t: \# m+ N+ R! q, q( G• 中断或异常控制的扩展存储,SysTick
* Z+ r  L3 G  c• 针对每个安全和非安全部分的内存保护单元。
8 q# R. Y% s+ n5 R( A/ i7 C2 O  \3 w- Q4 E9 y+ y/ W4 w2 U
@(FGBI(4N@F@_@Z~ZRLI6S4.png
# _' x5 k2 Q/ @ 提示 TrustZone®被启用后,系统默认在安全状态下启动。
8 d( m. ]- _, V: Z, q# Z$ `1 p0 v2 Z6 R/ {9 O9 v* s
4 SAU / IDAU - TrustZone®概念 $ L3 C8 g: Y2 I
TrustZone® 安全功能由 FLASH_OPTR 寄存器中的 TZEN 位激活。TrustZone®被启用后,SAU 和 IDAU 根据安全 和非安全状态定义访问权限。
5 _: c. o1 M  {" q9 n • IDAU:将第一个内存分区配置为安全或非安全可调用属性。IDAU 内存映射分区是不可配置的,它由硬件配 置决定。
+ F4 y% R" _, t) I6 `; _( {6 q• SAU:8 个区域,用于覆盖 IDAU 以设置安全区域和确认非安全区域。% n' v. `1 a( Q: z6 k7 B( a
• 首先根据 IDAU 安全属性选择安全状态,然后结合 SAU 安全属性选择安全状态。最终的安全属性是 IDAU 和 SAU 的最高安全设置。
  a2 C1 b5 a$ E) r • “安全”安全属性具有最高的安全优先级,非安全可调用的安全优先级次之,非安全属性的安全优先级最低。默 认情况下,任何未定义的区域都是安全的/ o9 _2 i# O8 f* V
3 E1 |3 @' R3 @) W' @; S) x
TrustZone®安全被激活之后,默认安全状态如下:: X) }& j0 w1 q6 s  Z
• CPU: Cortex®-M33 在复位后处于安全状态。启动地址必须在安全区域中。
& t# \8 V) n' _) E7 x4 R  z3 ` • 内存映射:SAU 在复位后是完全安全的。整个内存映射是完全安全的。最多有 8 个 SAU 可配置区域用于安 全属性。$ `4 n. v3 d( p) u
• Flash 存储器:
! q$ k0 i$ p1 H6 Q9 V  {– Flash 安全区域是由安全水印用户选项定义的。所有闪存都是完全安全的。
  A3 S2 c' d4 ]5 t8 |– Flash 块的功能在复位后是非安全的。即使所有的闪存通过 IDAU/SAU 和闪存安全水印选项字节配置都 是非安全的,也可以使用基于闪存块的特性配置易失性安全区域:使用 Flash 块的配置寄存器,任何页 面都可动态编程为安全模式。9 K6 ^/ U6 F* g
– SRAM:所有 SRAM 在复位后是安全的。基于内存保护块的控制器(MPCBB)是安全的。
2 p0 l4 J5 T' U) q • 非安全内存视图与其他 Cortex®-M 内核相同。1 H4 I: l3 ~/ A5 Q& S4 C
• 安全内存空间分为两种内存类型:1 [3 W) F7 y! \
– 安全:包含安全程序代码和数据,如栈区和堆区。 $ D4 z/ O, t; b* s5 T- F
– 非安全可调用(NSC):包含入口函数(例如 API 的入口点),这是为了防止非安全应用程序分为无效 入口点。
# Q5 m6 W) A, E/ w, W6 S
. Q0 D9 ~) N6 u1 E/ e( u8 z5 调试模式
4 {; s6 `& T- |5.1  侵入式调试
: d, i. T$ w6 g0 n! J% ]: P 侵入式调试定义为一种调试过程 - 用户控制并观察处理器活动。大多数调试功能被认为是侵入式调试,因为它们允 许用户停止处理器并修改其状态。 , e; _& P# [, [# V2 z
DBGEN 和 SPIDEN 控件都具有侵入式调试权限。
) C' {" O" b0 E7 M! h) S+ G8 ~* `( U+ s3 T9 W& c7 O; c& E
5.2 非侵入式调试 5 Z  D1 @3 e, t2 W' L; B
非侵入式调试定义为一种调试过程 - 用户观察处理器但不进行控制。嵌入式跟踪宏单元™(ETM)接口和性能监视 器寄存器是非侵入式调试的特性。
, n8 ]' n" r* T( a; C4 WNIDEN 和 SPNIDEN 控件都具有非侵入式调试权限。允许侵入式调试的时候总是允许非侵入式调试。1 M' M  W1 P1 Y; N, m
, O6 m) O1 a& H# A. H
完整版请查看:附件/ B% }* p: q; ^1 {+ j
STM32L5 系列微控制器和 TrustZone® 开发入门.pdf (6.59 MB, 下载次数: 6)
收藏 评论0 发布时间:2023-2-12 22:56

举报

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