关于嵌入式的存储名称
1、 ROM 、RAM、IROM、IRAM
ROM:read only memory 只读存储器
ROM是指程序运行的过程中不能直接通过数据总线、地址总线进行数据的写操作,必须借助于相关的控制器接口来进行数据的写操作。
ROM大部分对应着外部存储器,主要是用来存储永久性数据的,程序不能在其上运行,也不能在保存程序运行时的数据。比如硬盘、Flash(U盘、Nand、iNand、SSD)、光盘等。但是也有特例,比如Norflash,能够映射到CPU内存的地址空间中,可以直接用来运行程序。至于Norslash在程序运行的过程中能不能修改其中的内容,暂时不清楚。
实际上,STM8S文档中描述其中EEPROM分为两个存储块,一个为Flash:主要用来存储和运行程序,一个为数据EEPROM:主要用来存储想要永久保存的用户数据。Flash部分主要通过写保护使得程序运行过程中不能进行写操作,否则程序会停止执行。
RAM:ramdom access memory 随机访问存储器
RAM主要是指内部存储器,可以用来运行程序和保存程序运行时所用到的数据,比如SRAM、DRAM、DDR等。CPU可以通过数据总线、地址总线直接访问RAM中的数据。
注意
CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线&数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)。
SoC常用外存:
NorFlash:总线式访问,接到SROM bank,优点是可以直接总线访问,一般用来启动。
NandFlash:分为SLC和MLC。
eMMC/iNand/moviNand:eMMC(embeded MMC),iNand是SanDisk公司出产的eMMC,moviNand是三星公司出产的eMMC。
oneNAND :oneNand是三星公司出的一种Nand
SD卡/TF卡/MMC卡
eSSD
IROM:internal rom 内部ROM,指的是集成到SoC内部的ROM
IRAM:internal ram 内部RAM,指的是集成到SoC内部的RAM
2、 DRAM、SRAM
DRAM:dynamic ram 动态RAM
动态内存,特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。
SRAM:static ram 静态RAM
静态内存,特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用。
不同系统对内存的需求
单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM。
嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质。
PC机: 内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM。
不同系统的存储器配置
所以一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM。
一般的单片机:很小容量的NorFlash + 很小容量的SRAM。
嵌入式系统:因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM + SoC内置IROM。
3、 SROM
SROM:sram and rom