2015/4/14更新
SDRAM:掉电后不保存数据,运行时需要动态刷新。读取速度比Flash快,适合启动后的程序执行,使用前需要初始化。主要用于程序执行时的程序存储、执行或计算,类似PC的内存。
NOR Flash:掉电保存数据/程序。可以直接执行指令,读取速度较快,写入不太方便,擦除速度较慢。适合存储小容量的程序(U-Boot)或数据,类似于PC存放BIOS的ROM。
NAND Flash:掉电保存数据/程序。读取速度比NOR Flash慢,但写入、擦除都较快。可靠性略低,需要做损耗平衡、数据校验等。适合存储大容量数据(如操作系统),类似PC的硬盘。
具体到ARM处理器,各个型号又有差异:
三星的S3C44B0X(ARM7),必须有NOR Flash和SDRAM。启动时可以直接运行NOR Flash中的代码,也可以将NOR Flash拷贝到SDRAM中运行。三星的S3C2440(ARM9),处理器里面就有4K的SRAM用来做CPU启动时用的,可以没有NOR Flash,一般使用NAND Flash和SDRAM。启动时必须将NAND Flash中的代码和数据拷贝到SDRAM中运行。ARM单片机(LPC17XX,STM32等),内置FLASH和SRAM。其中,S3C2440支持两种启动模式:NAND和非NAND(一般是NOR Flash)。具体采用的方式取决于OM0、OM1两个引脚。