ARMv8-M的TrustZone支持Secure和Non-Secure模式的直接切换。以下几个汇编指令是状态切换中要用到的比较重要的指令:指令描述SGSecure Gateway是状态切换的第一条指令BXNS用于安全模式切换到非安全模式BLXNS用于安全模式下的非安全函数调用一下是状态切换的一个框图:从非安全模式下调用安全模式函数也是允许的,不过entry point的第一条指令必须是SG...
我的代码我做主
ARMv8-M的TrustZone支持Secure和Non-Secure模式的直接切换。以下几个汇编指令是状态切换中要用到的比较重要的指令:指令描述SGSecure Gateway是状态切换的第一条指令BXNS用于安全模式切换到非安全模式BLXNS用于安全模式下的非安全函数调用一下是状态切换的一个框图:从非安全模式下调用安全模式函数也是允许的,不过entry point的第一条指令必须是SG...
SAU内部的寄存器都是32位的,下表是SAU相关寄存器的一个列表:地址名称类型复位值处理器状态描述0xE000EDD0SAU_CTRLRW0x00000000SecureNon-SecureSAU控制寄存器RAZ/WI0xE000EDD4SAU_TYPERO0x0000000xSecureNon-SecureSAU类型寄存器,表征可用regions数目RAZ/WI0xE000EDD8SAU_...
上一节中我们提到,内存的划分是通过属性单元(Attribute Unit)实现的,它主要有两种:内部的Secure Attribute Unit(SAU)和外部Implementation Defined Attribution Unit(IDAU).处理器所支持的SAU区域数量在设计时候就定义好了,SAU模块上电的时候是禁用的。如果没有定义SAU区域,并且系统中也么有IDAU,那么整个处理...
在实现了TrustZone功能的系统中,4GB的存储空间1会分成安全和非安全两种不同的内存区域。其中安全空间又分为两种不同的类型:安全Secure(S):安全地址空间指的是只能通过安全软件或者安全主设备访问的内存空间或者外设的寄存器。安全访问指的是访问根源的主设备被认为是安全的,这样的主设备去访问一个安全地址称为安全访问。非安全可调用Non-Secure Callable(NSC):NSC是...
嵌入式系统中,安全有着多种不同的含义。在一般的系统中,安全包含但不限于以下几个部分:通信保护:它主要是避免传输的数据被侦听或者未授权访问,一般是通过加密等技术实现。数据保护:防止存储在设备的数据被非法访问。固件保护:防止设备的固件被非法逆向。操作保护:防止设备被恶意操作。篡改保护:很多的安全设备都会集成防篡改模块,用于防止设备被恶意篡改。而TrustZone则实现了以下一些安全功能:数据保护...