上班摸鱼记录

2023

这里放一些上班会用到的知识点,应该大部分是关于MCU, 微机原理以及操作系统的内容



十一月

代码的内存分布

一、程序文件中的代码分布:

  1. Code: 代码文件
  2. RO data: const等只读数据
  3. RW data: 初始化值为非零的数据,例如非零初始化的全局变量或者静态变量
  4. ZI data: 初始化为0的数据
    编译成代码后放入flash的部分包含:code + RO data + RW data
    运行时RWdata被拷贝至ram, ZI data 也会存在于RAM

二、程序运行时候的内存分布:

  1. code:代码,通常是只读
  2. RO data
  3. data: 初始化过后的全局变量静态变量或者常量
  4. BSS: block started by symbol, 放置未初始化或者初始化为0的变量,通常在初始化之后会被清零
  5. heap: 堆, 向上生长,也就是内存地址增加
  6. stack: 栈,向下生长,也就是内存地址减小

AMR core v7-m cache以及MPU

关于MPU, 能够设置内存cache的操作方式,能够进行region访问权限的保护。
cache的操作:
1. write through: cpu写数据时候同时写入cache以及memory, 保证数据一致, 简单但是速度慢
2. write back: CPU更新数据的时候把cache区域进行标记(dirty),在需要数据时候把数据同步到主存中。
3. write allocate: 写缺失时候,写入主存的时候同时更新cache
4. read allocated: 与 write allocate 类似
MPU的权限(对于特权模式和user模式的探索还需要完善)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值