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

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

[复制链接]
STMCU小助手 发布时间:2023-2-12 22:56
引言 ' l2 p; R" _( P+ q3 G3 n5 o1 g
$ H, L7 y# s1 \: P
本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。 ( y1 Y& h$ C: _' E! U0 g
本应用笔记提供了为 Arm® Cortex®- m33(Armv8_M 架构)的器件构建和调试安全和非安全应用程序的基础知识。 本文首先概述 Arm® Cortex®-M33 和 TrustZone®概念。
. o& o9 O# i; d9 R; Q本应用笔记还描述当通过 TZEN 选项位启用 TrustZone®之后,如何使用 EWARM 和 MDKARM 调试 STM32L5 系列微控制器。( K$ u% _8 S' K" Y
% u. R& h2 v  I
1 概述
7 X1 |4 t# T, S$ v, u' ]本文档适用于 STM32L5 系列单核 Arm®的微控制器。
7 k  w( L; F5 {/ m3 z% Z- }3 s4 ] 提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.- t" G& n4 [$ K
# T! B" n5 m1 L# y' D4 J
2 Arm® Cortex®-M33 内核概述
4 d0 A1 ]5 F- c# E1 V4 K6 G Arm® Cortex®-M33 是首次完整的集成了 ARMv8 指令集及 TrustZone 安全技术和数字信号处理功能。该处理器支 持大量灵活的配置选项,以促进各种应用程序的部署,并提供专用的协处理器接口,用于加速经常使用的计算密集 型操作。Cortex®-M33 提供性能、功率、安全性和生产效率之间的最佳平衡。 8 N2 N3 W# o# r) Q3 [+ @) Z" S4 r

* F. o2 c+ @! o, x# g1 W! _( G3 Armv8-M 的 TrustZone®概念
0 r9 p# Y5 R0 |1 T$ e6 c带有 TrustZone®的 Cortex®-M33 处理器有两个安全状态(参见图 1)和一些相关的特性:
9 a/ v" ?( |) h& W• 安全状态
( r' A1 U$ z2 k/ P4 P+ I. O• 非安全状态
# L* X4 P, v+ W! f( \• 四个堆栈和四个堆栈指针寄存器
6 J' _# L* D% {• 硬件栈限制检查 0 Q& \6 e" o  p8 z# I* W
• 支持类似于可编程 MPU 的安全属性单元(SAU)/ B  V9 `0 M4 f' c
• 系统安全通知接口 2 Z' b* R) b- K. M
• 限定非安全(NS)域只能通过预定义的入口点访问安全代码
& i. G. q5 T7 T+ P• 当切换到非安全时,异常硬件自动保存和清除安全寄存器状态 + H4 g0 j3 r1 h
• 中断或异常控制的扩展存储,SysTick
6 f0 d( t+ u2 E  M+ u1 M• 针对每个安全和非安全部分的内存保护单元。
& G* I7 S* A  J
) h5 [& }3 A, m& m8 E: r @(FGBI(4N@F@_@Z~ZRLI6S4.png
2 e; h6 }7 U6 p  b$ [0 R4 h# j 提示 TrustZone®被启用后,系统默认在安全状态下启动。2 m. P" R7 O% A6 X/ A/ s4 `! i3 K

1 D% w, `+ G% P8 c4 SAU / IDAU - TrustZone®概念 6 s% I, g. s# T3 k. S5 r
TrustZone® 安全功能由 FLASH_OPTR 寄存器中的 TZEN 位激活。TrustZone®被启用后,SAU 和 IDAU 根据安全 和非安全状态定义访问权限。
$ \+ ?9 }/ @; O1 S • IDAU:将第一个内存分区配置为安全或非安全可调用属性。IDAU 内存映射分区是不可配置的,它由硬件配 置决定。
, h+ H7 a; c- {6 s' q! _! B• SAU:8 个区域,用于覆盖 IDAU 以设置安全区域和确认非安全区域。8 h  n( z( b/ G1 j$ F% [# l' w6 s5 X
• 首先根据 IDAU 安全属性选择安全状态,然后结合 SAU 安全属性选择安全状态。最终的安全属性是 IDAU 和 SAU 的最高安全设置。& n  H: q% U/ I
• “安全”安全属性具有最高的安全优先级,非安全可调用的安全优先级次之,非安全属性的安全优先级最低。默 认情况下,任何未定义的区域都是安全的
' `" j& p- f# J9 d
9 B: x4 }3 M  _" }# P& ~
TrustZone®安全被激活之后,默认安全状态如下:
, h5 V. e9 M; u3 ` • CPU: Cortex®-M33 在复位后处于安全状态。启动地址必须在安全区域中。
6 e5 Y0 c5 A, }# ? • 内存映射:SAU 在复位后是完全安全的。整个内存映射是完全安全的。最多有 8 个 SAU 可配置区域用于安 全属性。+ D; s1 V# U) R' }" j+ P/ Q$ b6 i
• Flash 存储器:
- X4 y, w8 N# N– Flash 安全区域是由安全水印用户选项定义的。所有闪存都是完全安全的。
; @: U5 Y! e2 {. A9 t8 }/ E– Flash 块的功能在复位后是非安全的。即使所有的闪存通过 IDAU/SAU 和闪存安全水印选项字节配置都 是非安全的,也可以使用基于闪存块的特性配置易失性安全区域:使用 Flash 块的配置寄存器,任何页 面都可动态编程为安全模式。2 z' i, b* V! `
– SRAM:所有 SRAM 在复位后是安全的。基于内存保护块的控制器(MPCBB)是安全的。/ A) r; T5 p0 z9 y
• 非安全内存视图与其他 Cortex®-M 内核相同。
2 {5 Q/ {$ c8 j • 安全内存空间分为两种内存类型:8 d5 S/ }' A$ O5 D
– 安全:包含安全程序代码和数据,如栈区和堆区。
- p3 Y1 H$ p# ?: A– 非安全可调用(NSC):包含入口函数(例如 API 的入口点),这是为了防止非安全应用程序分为无效 入口点。
( @) c7 l- v; w8 R4 n7 b, H. |0 s8 r: w" X  P& h- B
5 调试模式
8 R' Q8 ?* B( C$ f9 R' K5.1  侵入式调试
% w& D. ]6 m2 S/ C# C# D 侵入式调试定义为一种调试过程 - 用户控制并观察处理器活动。大多数调试功能被认为是侵入式调试,因为它们允 许用户停止处理器并修改其状态。 1 ~" M2 e! E' F; s0 `$ C3 R' v% N9 E
DBGEN 和 SPIDEN 控件都具有侵入式调试权限。
6 M+ x& @. u+ q! C8 ^$ K, l! ]$ L1 n' D3 L* Q  `$ X
5.2 非侵入式调试
" _- q& Y( x" a8 P9 ^1 G% {( K非侵入式调试定义为一种调试过程 - 用户观察处理器但不进行控制。嵌入式跟踪宏单元™(ETM)接口和性能监视 器寄存器是非侵入式调试的特性。
& s5 z+ O0 V# ENIDEN 和 SPNIDEN 控件都具有非侵入式调试权限。允许侵入式调试的时候总是允许非侵入式调试。; s. b8 V2 l; ~$ x: ?% ?- z

7 v+ ~" p9 |1 ?完整版请查看:附件" m5 V1 c$ @# m8 s
STM32L5 系列微控制器和 TrustZone® 开发入门.pdf (6.59 MB, 下载次数: 11)
收藏 评论0 发布时间:2023-2-12 22:56

举报

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