我们在前面文章中已经简单的写到,TrustZone模式下,中断是可以自由的配置产生Secure中断还是Non-Secure中断,这个可以在NVIC->ITNS一系列寄存器中进行配置,现在我们就遇到了这样一个问题。问题描述这个问题也是在测试中发现的,具体是在测一个memory保护模块时产生的。Memory保护模块可以让用户自主的配置一个Memory或者外设是Secure还是Non-Sec...
我的代码我做主
我们在前面文章中已经简单的写到,TrustZone模式下,中断是可以自由的配置产生Secure中断还是Non-Secure中断,这个可以在NVIC->ITNS一系列寄存器中进行配置,现在我们就遇到了这样一个问题。问题描述这个问题也是在测试中发现的,具体是在测一个memory保护模块时产生的。Memory保护模块可以让用户自主的配置一个Memory或者外设是Secure还是Non-Sec...
在前面文章中,我们已经简单介绍了TrustZone相关的一些基本知识,包括S,NS,NSC空间的划分,S和NS之间的调用和跳转等等。另外对于TrustZone程序的编写,以及如何编写支持Non-Secure Call的函数,如何在Secure模式下面调用Non-Secure函数等等。今天我们来聊一聊IAR环境下面TrustZone和CORE中一些相关寄存器的配置。内存地址划分为了实现S,NS...
FPU全称Float Point Unit,即浮点运算单元,是CPU中针对浮点运算进行加速的单元,在Cortex-M系列CPU中,FPU是一个可选选项,引入FPU之后可以有效加速浮点运算速度,提高CPU性能。理论上是这么个说法,但是实际使用中我却遇到了这么一个问题:使用了FPU之后,程序运行时间反而更长,这个着实奇怪。于是我展开了比较深入的Debug,首先FPU的开启和关闭是通过IAR的选项...
本文翻译自intricacies of writing ARMv8-M Secure codeARM现在已经通过ARMv8-M安全扩展将TrustZone引入到了M系列处理器,TrustZone是一种将重要的代码和数据同普通代码和数据相隔离的一种技术。这种技术可以限制危险或者可利用代码的权限。也可以保证重要的数据和代码与一般代码分离。所以这种技术也依赖Secure代码的可靠性,要想写出可靠的...
本文翻译自CONCEPTS BEHIND THE ARMV8-M TRUSTZONE基本概念本文章是我在使用Nodic的新产品nRF9160之后总结而来,这个SiP产品集成无线通信功能,可以用于创建IoT节点。内部集成新的高度优化的LTE动态调制器,支持NB.Iot和LTE-M标准,可以用于传统M2M 2G网络设备的升级。Lobaro的这种SiP技术,对我们来说是比较新的概念,和传统的一个控...