STMCU小助手
发布时间:2023-2-14 18:47
|
1. 简介客户在 Nucleo-U575ZI 开发板上使用 TrustZone 架构,测试 LPBAM 功能。首先使能了 TrustZone 架构,然后将 LPGPIO 映射到了非安全区,并且配置了 DMA 链表功能,使用 LPTimer 作为触发,自动地修改 LPGPIO 的寄存器,从而达到在低功耗模式下,GPIO自动切换的功能。但遇到了 LPDMA 的配置问题,并且程序无法跳转到 Non-Secure 工程。 7 j' B" o1 O4 y7 p: g+ P , f' N) r% Y9 N8 [6 T/ u# f 1.1. TrustZone 简介" \. h1 D: R* u# k& U/ c5 r U575ZI 上的安全架构使用了基于 Arm TrustZone, 支持 Armv8-M 指令。当 TrustZone 使能以后,SAU 和 IDAU 基于安全和非安全状态定义了访问权限。IDAU 是硬件实现,出厂已经默认配置好了,无法通过软件重新配置。SAU 可以由软件配置。 # K$ E+ U+ L' y- h( ]1 |
! J2 M8 B5 M4 E6 J' Y' S 从上图可以看到,每一个地址空间都有一个安全或非安全的属性,并且 Flash 和 SRAM 的地址空间都有两个安全和非安全状态。也就是说 Flash 和 SRAM 使用了别名,通过不同名字访问同一块物理地址区间,从而达到不同的安全属性。外部的内存空间没有别名,如 Octo SPI Flash。这个是 IDAU 所决定的,最终的安全属性由 IDAU 和 SAU 共同决定,如下面这张表:2 g; m- Y* ~: t% d( u$ ^ ! K' P* v' Q: E4 k
- A3 N5 ~; j4 ?2 B, q6 R4 J 1.2. LPBAM 简介 LPBAM 全称为 Low-power background autonomous mode,它允许部分外设运行在 Stop0,Stop1,Stop2 模式下,并且不需要软件运行。那么当配置好这些外设后,这些外设可以自动的在低功耗模式下进行工作,从而大大减少功耗。9 g# |1 m5 ?1 G1 r% L7 ? 在低功耗模式下,得益于系统时钟(MSIS/HSI16)的自动开关功能,DMA 可以在 Stop 模式下运行。当有外设请求时,系统时钟会自动打开,没有外设请求时,系统时钟会自动关闭。外设的自动运行,受控于同步或异步的触发,比如 I/O 边沿检测或者低功耗 Timer。 " J9 X$ s, \% F* U" f) E O" c . D1 z1 {8 f: y, H- p% n+ C / p9 y$ |+ M) L! `% ^" J 完整版请查看:附件
TrustZone架构下LPBAM使用导致的HardFault_v1.0.pdf
(633.27 KB, 下载次数: 1)
|
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版