在嵌入式开发的过程中,芯片boot启动流程,内存映射表多个地方都会涉及到这几个概念,因此打算在一篇博客中进行汇总整理,便于之后回忆理解。本文为个人学习总结,若有错误之处欢迎在评论区中指出!
1.存储器系统结构:
ARM Cortex-M内存使用的是统一编址,32bit总线的地址空间是4GB (0x00000000 - 0xFFFFFFFF)。
2.存储器分类
按照存储介质的特性,可以分“易失性存储器”和“非易失性存储器”两类,易失和非易失是指存储器断电后,里面存储的内容是否会丢失,另一边的速度而言呢,易失性存储器的速度要快于非易失性存储器。
2.1易失性存储器
随机存取存储器(RAM),也叫做主存。与CPU直接交换数据的内部存储器。
SRAM:静态随机存取存储器--只要不掉电,就能一直保持数据。(体积较大)
DRAM:动态随机存取存储器--存在漏电的情况,所以需要保持刷新。
2.2非易失性存储器
只读存储器(ROM),我们正常编译生成的二进制文件,需要下载烧录到单片机中,保存在ROM中。
EEPROM:带电可擦可编程只读存储器
FLASH::闪存--除了掉电不失数据之外,Flash的特点还有操作以扇区/块为单位。目前市场上比较常见的Flash技术有NOR Flash和NAND Flash。
注:EEPROM能够单独修改某个字节,但是Flash想要修改,只能先擦除,再编程写入
NOR Flash ROM:以字节为单位进行随机存取。这样应用程序就可以直接在NOR Flash ROM上面运行。
NAND Flash ROM:以页(行)为单位随机存取,在容量、使用寿命和成本方面有较大优势。而且单元电路尺寸几乎只是 NOR 器件的一半,可以在给定的芯片尺寸内提供更高的容量,也就相应地降低了价格。