简介
客户在 Nucleo-U575ZI 开发板上使用 TrustZone 架构,测试 LPBAM 功能。
首先使能了 TrustZone 架构,然后将 LPGPIO 映射到了非安全区,并且配置了 DMA 链表功能,使用 LPTimer 作为触发,自动地修改 LPGPIO 的寄存器,从而达到在低功耗模式下,GPIO自动切换的功能。但遇到了 LPDMA 的配置问题,并且程序无法跳转到 Non-Secure 工程。
问题分析
通过断点可以发现,程序是可以跳转到 NS 工程的,可以正常执行 SystemInit 函数,可以执行到__main,但无法进入 main 函数。
总结
在调试 TrustZone 工程的时候,需要对所有外设和内存的安全属性有合理的规划和配置,相对于普通工程,TrustZone 工程更容易由于安全属性的不符合导致 Bus Fault 等硬件错误,需要更小心谨慎。
阅读全文