NandFlash与NorFlash

目前已经很多ARM9的处理器都至少支持nand flash启动 和nor flash启动。那此两种启动方式到底有什么区别呢?下面以S3C2440为例说明。

NandFlash 与 NorFlash 区别

如下表所示

 

NOR

NADN

容量

1~32MB

16~512MB

XIP(芯片内执行)

Yes

No

性能

擦除非常慢,写慢,但是读非常快

擦除、写、读都较快

可靠性

高,位反转比例小于nandflash的10%

比较低,位反转比较常见

接口

与RAM一样

I/O接口

访问方法

随机访问

顺序访问

主要用途

保存代码和关键数据

用于保存数据

价格

文件系统支持

Jffs2

Yaffs

记住最重要一点,NOR Flash的接口与RAM一样,所以可以随机访问任意地址,效率高,所以读的效率非常高。而NAND FLASH一般以512字节为单位进行读写。前者更适合保存程序,而后者保存数据。

启动方式对比

Nand启动

分两种情况,应用程序小于4K和应用程序大于4K。

如果应用程序小于4K:

(1)       一上电,nand前4K自动拷贝到2440内部的SRAM中。(2440的片内存储为4K)

(2)       CPU从0地址执行(此时,0地址在SRAM中)

如果应用程序大于4K,那么应该怎么办呢。还是一样:

(1) 上电后,从nand前4K拷贝到片内的SRAM

(2)关看门狗、初始化存储器管理器、SDRAM等

(3) 把代码拷贝到SDRAM中,并继续执行。

不同的是,需要订制这4K的代码,完成从nandflash到sdram代码的复制。

Nor启动

最根本的区别在于从nor启动,由于nor也是并行传输,可以像内存(SRAM)一样读数据,但不能像内在一样写数据,所以可以将0地址定位在norflash中

(1)       一上电,将0地址定位在nor flash中

(2)      同样,CPU从0地址取址执行。

原文地址:https://www.cnblogs.com/dudu1990/p/3393258.html