1、问题背景
客户在开发 STM32U5 SBSFU 过程中,原本 APP_NS 使用了整个 SRAM3 的 512K 大小的内存,但后来由于需求变更,要将 SRAM3 中前 32K 的内存分给 APP_S 用。客户调整代码后,发现触发了 SecureFault 中断。尝试查找问题所在,但一直没找到。本文将基于此问题背景,向读取呈现如何调试并定位一个 trustzone 相关问题的过程,以增加读者的调试经验。
2、问题分析与定位
从客户那拿到可以重现问题的测试代码。烧录并运行代码,从打印信息确实看到程序运行不正常。因为正常情况下 APP_NS 的打印信息是可以看到的,但此时并没有。
3、结束语
本文所描述的问题,客户其实是花了大量精力来设计,MPCBB3 配置,SAU 配置,代码区域划分,内存区域划分,ld 文件配置等等,但始终没找到问题所在,最终问题还是出在了一个毫不起眼的 “小问题”上,可见有关 trustzone 开发上,仔细阅读相关手册,细心和耐心是相当重要的。
阅读全文
443