本帖最后由 crifan 于 2011-10-10 23:37 编辑
截至2011-10-10,最新的版本是 v1.8,可以去这里下载: 【详解】如何编写Linux下Nand Flash驱动 v1.8 http://bbs.chinaunix.net/thread-3603541-1-1.html 对于之后的新版本,想要的,可以发邮件给我:green-waste(At)163.com。
-------------------------------------------------------------------------
最近抽空更新了一下之前的:【简介】如何编写linux下nand flash驱动 v1.0 .pdf
现在最新版本是:【详解】如何编写Linux下Nand Flash驱动 v1.2.pdf
具体内容主要是:
详细解释了Nand flash的硬件特性以及对应的Linux下相关的软件架构,以及如何实现硬件到软件的映射,最后解释了如何在Linux下实现Nand Flash的驱动。
感兴趣的可以下载下来看看:
【详解】如何编写Linux下Nand Flash驱动 v1.2.pdf
(1.14 MB, 下载次数: 1771)
下面贴出目录:
------------------------------------------------------------- 【详解】如何编写Linux下Nand Flash驱动 版本: 1.2 最后更新日期:2011-03-15 作者:crifan 邮箱:green-waste(At)163.com
目录
1.正文之前...................................................................................................................................4 1.1.目的...........................................................................................................................4 1.2.目标读者和阅读此文的前提...................................................................................4 1.3.说明...........................................................................................................................4 1.4.声明...........................................................................................................................4 2.编写驱动之前要了解的知识...................................................................................................5 2.1.硬件特性...................................................................................................................5 2.1.1.什么是Flash.....................................................................................................5 2.1.1.1.Flash的硬件实现机制.............................................................................5 2.1.2.什么是Nand Flash...........................................................................................5 2.1.2.1.Nand Flash和Nor Flash的区别..............................................................6 2.1.2.2.Nand Flash的详细分类............................................................................7 2.1.3.SLC和MLC的实现机制................................................................................7 2.1.3.1.SLC(Single Level Cell)........................................................................7 2.1.3.2.MLC(Multi Level Cell)........................................................................7 2.1.3.3.关于如何识别SLC还是MLC................................................................8 2.1.4.Nand Flash数据存储单元的整体架构............................................................8 2.1.5.Nand Flash的物理存储单元的阵列组织结构................................................9 2.1.5.1.Block块....................................................................................................9 2.1.5.2.Page页......................................................................................................9 2.1.5.3.oob / Redundant Area / Spare Area.........................................................10 2.1.6.Flash名称的由来...........................................................................................10 2.1.7.Flash相对于普通设备的特殊性...................................................................10 2.1.8.Nand Flash引脚(Pin)的说明..........................................................................11 2.1.8.1.为何需要ALE和CLE...........................................................................12 2.1.8.2.Nand Flash只有8个I/O引脚的好处..................................................12 2.1.8.2.1.减少外围连线:..........................................................................12 2.1.8.2.2.提高系统的可扩展性..................................................................13 2.1.9.Nand flash的一些典型(typical)的特性.........................................................13 2.1.10.Nand Flash控制器与Nand Flash芯片.........................................................13 2.1.11.Nand Flash中的特殊硬件结构......................................................................13 2.1.12.Nand Flash中的坏块(Bad Block)..................................................................14 2.1.12.1.坏块的分类...........................................................................................14 2.1.12.2.坏块的标记...........................................................................................14 2.1.12.3.坏块的管理...........................................................................................15 2.1.12.4.坏块的比例...........................................................................................15 2.1.13.Nand Flash中页的访问顺序..........................................................................15 2.1.14.常见的Nand Flash的操作.............................................................................15 2.1.14.1.页编程(Page Program)注意事项.....................................................16 2.1.14.2.读(Read)操作过程详解...................................................................17 2.1.14.2.1.需要使用何种命令....................................................................17 2.1.14.2.2.发送命令前的准备工作以及时序图各个信号的具体含义....17 2.1.14.2.3.如何计算出我们要传入的行地址和列地址............................19 2.1.14.2.4.读操作过程的解释....................................................................20 2.1.15.Nand Flash的一些高级特性..........................................................................20 2.1.15.1.片选无关(CE don’t-care)技术..............................................................20 2.1.15.2.带EDC的拷回操作以及Sector的定义(Copy-Back Operation with EDC & Sector Definition for EDC).....................................................................21 2.1.15.3.多片同时编程(Simultaneously Program Multi Plane).........................21 2.1.15.4.交错页编程(Interleave Page Program)............................................21 2.1.15.5.随机输出页内数据(Random Data Output In a Page).....................22 2.2.软件方面.................................................................................................................22 2.2.1.内存技术设备,MTD(Memory Technology Device)..............................22 2.2.2.读操作的硬件到软件的映射.........................................................................23 2.2.3.Nand flash驱动工作原理..............................................................................28 3.Linux下Nand Flash驱动编写步骤简介..............................................................................30 3.1.对于驱动框架部分.................................................................................................30 3.2.对于Nand Flash底层操作实现部分.....................................................................30 4.引用文章.................................................................................................................................33 图表 图表1 典型的Flash内存单元的物理结构..........................................................................5 图表2 Nand Flash 和Nor Flash的区别...............................................................................6 图表3 Nand Flash 第3个ID的含义...................................................................................8 图表4 Nand Flash物理存储单元的阵列组织结构...............................................................9 图表5 Flash和普通设备相比所具有的特殊性..................................................................10 图表6 Nand Flash引脚功能说明........................................................................................11 图表7 Nand Flash引脚功能的中文说明.............................................................................12 图表8 Nand Flash读写时的数据流向................................................................................14 图表9 Nand Flash K9K8G08U0A的命令集合...................................................................16 图表10 Nand Flash数据读取操作的时序图.......................................................................18 图表11 Nand Flash的地址周期组成...................................................................................19 图表12 MTD设备和硬盘设备之间的区别........................................................................23 图表13 Nand Flash数据读取操作的时序图.......................................................................24 |