摘 要 在嵌入式系统中,数据的存储经常使用Nandflash芯片来完成。文中介绍了Nandflash的存储原理,并在三星的s3c2410处理器平台下,给出了在无操作系统和在Linux系统下,对Nandflash芯片的读写方法。
关键词 s3c2410处理器;Nandflash;linux内核
1 引言
Flash(闪存)具有可擦可写、断电后数据不丢失、体积小等特点,而被广泛地应用到嵌入式系统设备中,目前市面上常见的Flash芯片,主要有Norflash和Nandflash两种,Nandflash与Norflash相比较,Nandflash 的擦除和写入速度要比Norflash快得多,而且体积较小,价格也相对低廉,可以反复擦除一百多万次,要比Norflash 十万次左右的擦除寿命长得多。而Norflash虽然还保持着自身的一些特点,比如读取的速度稍快一点,但随着Nandflash技术的逐步完善,变得越来越不明显。
2 Nandflash
2.1 闪存存储器
(1)按顺序存取数据。
(2)存储器内部以块为单位进行分割,而各块又以页为单位进行分割。
(3)以块为单位进行擦除,以页为单位进行编程(写入)。
(4)必须先擦除才能再编程。因为擦除是将存储单元置1,而编程只是将存储单元置0,而不能将0置为1,所以只有将存储单元擦除置1后,才能进行写入。
(5)一个页面内,又分为数据区(data area)和空闲区(spare area),数据区用于存放有效数据。空闲区主要用来标记坏块,以及存放校验码(比如ecc校验码)等其他信息。
2.2 Nandflash 与处理器的硬件连接示意图
如图1所示:
|