STM32 MCU TrustZone开发调试技巧(1)- 地址安全区及资源安全属性配置
在新的ARM V8-M TrustZone 架构下,软件的开发由原来的单一工程,变成了Secure 安全和NonSecure 非安全两个工程的联合开发,系统上电首先从Secure 工程开始运行,完成必要初始化之后跳转至NonSecure 工程运行,之后NonSecure 工程还可以通过调用Secure工程经由NSC Secure NonSecure Callable)区提供的API 调用Secure 工程的函数。 在TrustZone 架构下,首先需要正确配置的就是地址的安全/非安全区域以及物理Memory 的安全和非安全属性。对于V8M 内核来说,这涉及到SAU/IDAU的配置,CPU能否正常访问存储器除了与IDAU/SAU配置有关,还与Memory自身的安全属性配置有关。 本文将对SAU/IDAU 配置,Memory 的自身安全属性配置,以及内核访问指令与数据时的安全访问规则加以阐述,希望可以帮助相关开发者更好地理解V8M TrustZone 的架构以及在STM32 中的实现,同时,还会列举一些与memory 的TrustZone 安全配置相关的常见问题及分析方法,给开发者做参考。