Index of Sfeng's Blob
ARM Hodgepodge of ARM A64 ADR and ADRP Cortex-M PendSV MPU SA and SAU Execution Priority Some Tips of Armv8-M Cache Virtually Indexed Physically Tagged RISC-V RVI AUIPC ...
ARM Hodgepodge of ARM A64 ADR and ADRP Cortex-M PendSV MPU SA and SAU Execution Priority Some Tips of Armv8-M Cache Virtually Indexed Physically Tagged RISC-V RVI AUIPC ...
Background 最近研究了把Armv8-M,实践了下从SPE启动把FreeRTOS跑在CM52的NSPE上,并且FreeRTOS的thread可以call SPE的secure service。过程中遇到了不少坑,记录一下,以备后查。 Some Tips Secure and Non-secure address space 查阅了不少关于Armv8 Cortex-M的实...
Background Cache的组织形式有多种,如VIVT,VIPT,PIPT等,每个都有各自的优缺点。本文主要研究下现代CPU中比较常用的VIPT。 VIPT的优点如下: 减少地址转换开销:VIPT缓存使用虚拟地址作为索引,物理地址作为标签。这意味着在进行缓存查找时,不需要进行虚拟地址到物理地址的转换,从而减少了地址转换的开销,提高了缓存查找的效率 减少cach...
Prface Cortex-M系列CPU中有handler mode和thread mode,然后又定义了privileged和un-privileged execution,Armv8-M中支持TZ又引入了secure state和non-secure state,再加上exception和interrupt,理解这些模式和了解它们的执行优先级,那么在Cortex-M系列芯片上开发项...
Preface SA和SAU是由Armv8-M的security extension引入的。是Cortex-M系列中实现TZ的重要组成部分。本文对它们做个初步介绍。 SA 关于SA,简单点讲就是把memory分成了下面几种type: Non-secure 在Arm Cortex-A系列里,non-secure的resource是其他所有状态下都可以访问的。然而在Corete...
What’s MPU Armv7-M/Armv8-M中支持PMSA(Protected Memory System Architecture),MPU就是其中的一个可选组件。MPU在Cortex-M中用来保护系统内存空间。它有以下功能: Memory region protection Access permissions Exporting memory attribut...
Background 在嵌入式系统中,资源的有限性是不争的事实,特别是可用的内存(SRAM, DRAM,TCM etc.)大多数情况下都不是那么富裕,这就需要对内存的使用精打细算了。本文介绍一种方法来帮助开发者分析stack的大小。这是因为stack其实对开发者来说是个隐含条件,并没有标准简单的方法拿到合适的值。大多数会在stack溢出的时候才会通过加大stack的方法解决问题,而de...
Issues When Using MACRO 宏定义的使用在C里面很普遍,它通常用于给代码中的常量,简单的函数或者某些表达式一个简短或容易理解阅读的名字,以减少重复代码,提高开发效率。这里需要注意的是,宏定义在编译过程中是一个文本替换和展开的过程,语法错误会被编译器捕捉,但类型检查,逻辑错误却无法保证,所以宏定义也要小心。 比如我们来看个最简单的例子: #define SQUAR...
Background 上篇文章Unaligned Fault - Defect Raised by Compiler Optimization里提出了疑问,编译器是怎么在内存中安排所定义变量的。本文将用一些示例来展示结果。 Compiler: (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614 Dat...
Background 上个周末有个客户量产项目出了些问题,被拉进群里做support,也真是够牛马的,周六干到深夜两点,周日熬到10点,周一本来想轮休下,又有新问题,又搞到10点,这还是外企风格不!!!不过量产顺利推进也是开心的,顺带总结经验教训。 Unaligned Access Fault 要理解这个错误是什么,首先要知道在计算机系统里什么叫unaligned access,以...