免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7933 | 回复: 13
打印 上一主题 下一主题

[驱动] 【详解】如何编写Linux下Nand Flash驱动 v1.2.pdf [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-16 22:22 |只看该作者 |倒序浏览
本帖最后由 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 3ID的含义...................................................................................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

评分

参与人数 2可用积分 +20 收起 理由
bitmilong + 10 精品文章
T-Bagwell + 10 精品文章

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2011-03-23 00:31 |只看该作者
讲得确实很详细,支持一下。

期待楼主继续讲解别的设备驱动。

论坛徽章:
0
3 [报告]
发表于 2011-03-25 19:26 |只看该作者
另外有个DMA的驱动讲解,之前就贴出来过了,感兴趣的话可以去看看:
详解ARM的AMBA设备中的DMA设备PL08X的Linux驱动
http://bbs.chinaunix.net/thread-1932320-1-1.html

其他方面:
熟悉cpufreq(动态调节cpu频率以节省功耗),nor flash;
了解部分驱动,比如I2C,USB,I2S,keyboard,MMC/SD,RTC,GPIO,UART等。

感兴趣的,可以一起讨论:green-waste (at)13.com

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2011-03-27 19:35 |只看该作者
收了,有时间学习学习
谢谢楼主分享

论坛徽章:
0
5 [报告]
发表于 2011-03-31 21:43 |只看该作者
Excellent reference

论坛徽章:
0
6 [报告]
发表于 2011-04-01 13:05 |只看该作者
好人一生平安

论坛徽章:
0
7 [报告]
发表于 2011-05-03 11:22 |只看该作者
貌似,不贴出目录,看的人就少,呵呵。所以贴出目录,方便看的人,大概知道有哪些内容。
此道理,貌似就像卖东西,要会吆喝,才能吸引人啊~~~

论坛徽章:
0
8 [报告]
发表于 2011-05-17 11:53 |只看该作者
回复 1# crifan


    顶顶顶!!!!

论坛徽章:
0
9 [报告]
发表于 2011-05-17 14:30 |只看该作者
看起来很棒,谢谢楼主!

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
10 [报告]
发表于 2011-05-24 20:59 |只看该作者
谢谢了 支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP