ARM TrustZone-M是Cortex-M硬件提供的安全执行环境实现。长久以来TrustZone的应用只能用C语言编写。我找到了ARM官方的一篇文档,稍加改进,只使用Rust语言编写了一个简单的TrustZone应用,包含Secure和Non-Secure World两部分。
这个例子演示了在Secure World和Non-Secure World之间相互调用函数,检查函数指针的权限,以及处理SecureFault的流程。主要使用的Rust语言特性有:cmse_nonsecure_entry和abi_c_cmse_nonsecure_call。
详情:https://github.com/IoTS-P/trustzone-m-rs