MPU
What’s MPU Armv7-M/Armv8-M中支持PMSA(Protected Memory System Architecture),MPU就是其中的一个可选组件。MPU在Cortex-M中用来保护系统内存空间。它有以下功能: Memory region protection Access permissions Exporting memory attribut...
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,以...
What’s PPAC PPAC是四个单词的缩写,分别为Power,Performance,Area,Cost。 Power 功耗指的是芯片运行过程中消耗的能量,也就是电能。 Performance 关于性能则有不少因素,比如频率,核数目,Cache,等等。 Area 面积是指芯片的尺寸大小,一般讲有多少个平方(mm^2)。 Cost 芯片的成本,包括物料,制造,研发等...
Preface 最近又去鼓捣MCU和RTOS了,先把一些基础性的东西搞的清楚的更有利于理解它的运作原理,本文中的PendSV就在Cortex-M系列和RTOS中plays an important role。 PendSV Intro The PendSV feature allows software to trigger an exception. Like IRQs, Pe...
BackGround 最近跟某大厂做code review,人家提出了用memzero_explicit代替memset来增加security,一试验,还真的是security issue。本文来展示一下试验的结果。 Concept of Dead Store 维基百科上这样定义Dead Store。 In computer programming, a dead store...
Preface U-Boot (subtitled “the Universal Boot Loader” and often shortened to U-Boot) is an open-source boot loader used in embedded devices to perform various low-level hardware initialization t...
Preface RPMB的全称叫做Replay Protected Memory Block,它主要的作用是防止对数据进行非法篡改,特别是通过replay的方式来篡改数据。另外RPMB的机制也保证了数据的完整性(integrity)和正确性(authenticity)。这些特性也是secureity的一部分,也是为什么把RPMB放在security category的原因。本文就来解析下...