Cortex-M FPU的一点点小问题

FPU全称Float Point Unit,即浮点运算单元,是CPU中针对浮点运算进行加速的单元,在Cortex-M系列CPU中,FPU是一个可选选项,引入FPU之后可以有效加速浮点运算速度,提高CPU性能。理论上是这么个说法,但是实际使用中我却遇到了这么一个问题:使用了FPU之后,程序运行时间反而更长,这个着实奇怪。于是我展开了比较深入的Debug,首先FPU的开启和关闭是通过IAR的选项...

继续阅读 »

怎么更好的编写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技术,对我们来说是比较新的概念,和传统的一个控...

继续阅读 »

修改mem文件的地址偏移

在通过mmi和mem文件修改FPGA bit文件中的ROM内容时候,我们常常需要修改mem文件的地址偏移,每次手动修改文件比较麻烦,并且容易出错,所以这里就搞了一个脚本去自动修改地址偏移,虽然可以通过sed基本一条命令就可以搞定,还是写了一个Python脚本来实现。另外,这里发现mem文件格式和gcc产生的hex基本通用,所以这个脚本也可以直接修改hex文件。不过IntelHex格式的就算了...

继续阅读 »