标签 TrustZone 下的文章

TrustZone中中断配置引发的一个问题

我们在前面文章中已经简单的写到,TrustZone模式下,中断是可以自由的配置产生Secure中断还是Non-Secure中断,这个可以在NVIC->ITNS一系列寄存器中进行配置,现在我们就遇到了这样一个问题。问题描述这个问题也是在测试中发现的,具体是在测一个memory保护模块时产生的。Memory保护模块可以让用户自主的配置一个Memory或者外设是Secure还是Non-Sec...

继续阅读 »

TrustZone基本环境的搭建

在前面文章中,我们已经简单介绍了TrustZone相关的一些基本知识,包括S,NS,NSC空间的划分,S和NS之间的调用和跳转等等。另外对于TrustZone程序的编写,以及如何编写支持Non-Secure Call的函数,如何在Secure模式下面调用Non-Secure函数等等。今天我们来聊一聊IAR环境下面TrustZone和CORE中一些相关寄存器的配置。内存地址划分为了实现S,NS...

继续阅读 »

怎么更好的编写ARMv8-M TrustZone安全代码

本文翻译自intricacies of writing ARMv8-M Secure codeARM现在已经通过ARMv8-M安全扩展将TrustZone引入到了M系列处理器,TrustZone是一种将重要的代码和数据同普通代码和数据相隔离的一种技术。这种技术可以限制危险或者可利用代码的权限。也可以保证重要的数据和代码与一般代码分离。所以这种技术也依赖Secure代码的可靠性,要想写出可靠的...

继续阅读 »

ARMV8-M TRUSTZONE的基本概念

本文翻译自CONCEPTS BEHIND THE ARMV8-M TRUSTZONE基本概念本文章是我在使用Nodic的新产品nRF9160之后总结而来,这个SiP产品集成无线通信功能,可以用于创建IoT节点。内部集成新的高度优化的LTE动态调制器,支持NB.Iot和LTE-M标准,可以用于传统M2M 2G网络设备的升级。Lobaro的这种SiP技术,对我们来说是比较新的概念,和传统的一个控...

继续阅读 »

TrustZone的IDAU接口

IDAU模块是用来表示处理器上哪些内存区域是Secure,Non-Secure Callable,Non-Secure的。通过它可以查询某个内存区域的Region Number,它还可以用来划分一个不受Secure Checking的区域,比如ROM table。不同处理器的IDAU是不尽相同的,但是在Cortex-M处理器上它还是有一定的共性的。下图就是一个典型的IDAU的接口:理论上ID...

继续阅读 »