您的位置 首页 5G

Linux下NAND FLASH驱动开发

但是由于物理制程 / 制造方面的原因,导致 nor 和 nand 在一些具体操作方面的特性不同: 表1:Nand Flash 和 Nor Flash 的区别 1. 理论上是可以的,而且

可是由于物理制程 / 制作方面的原因,导致 nor nand 在一些具体操作方面的特性不同:

1.jpg


表1:Nand Flash Nor Flash 的差异

1. 理论上是能够的,并且也是有人验证过能够的,只不过由于 nand flash 的物理特性,不能彻底确保所读取的数据 / 代码是正确的,实际上,很少这么用罢了。由于,假如真是要用到 nand flash 做 XIP ,那么除了读出速度慢之外,还要确保有数据的校验,以确保读出来的,即将履行的代码 / 数据,是正确的。不然,体系很简略就跑飞了。

2. 芯片内履行 (XIP, eXecute In Place) :

http://hi.baidu.com/serial_story/blog/item/adb20a2a3f8ffe3c5243c1df.html

【 Nand Flash 的品种】

具体再分,又能够分为

1)Bare NAND chips :裸片,独自的 nand 芯片

2)SmartMediaCards : = 裸片 + 一层薄塑料,常用于数码相机和 MP3 播放器中。之所以称 smart ,是由于其软件 smart ,而不是硬件自身有啥 smart 之处。 ^_^

3)DiskOnChip :裸片 +glue logic , glue logic= 硬件 ECC 产生器 + 用于静态的 nand 芯片操控的寄存器 + 直接拜访一小片地址窗口,那块地址中包含了引导代码的 stub 桩,其能够从 nand flash 中复制真实的引导代码。

【 spare area/oob 】

Nand 由于开始硬件规划时分考虑到,额定的过错校验等需求空间,专门对应每个页,额定规划了叫做 spare area 空区域,在其他当地,比方 jffs2 文件体系中,也叫做 oob ( out of band )数据。

其具体用处,总结起来有:

1. 符号是否是坏快

2. 存储 ECC 数据

3. 存储一些和文件体系相关的数据,如 jffs2 就会用到这些空间存储一些特定信息, yaffs2 文件体系,会在 oob 中,寄存许多和自己文件体系相关的信息。

2. 软件方面

假如想要在 Linux 下编写 Nand Flash 驱动,那么就先要搞清楚 Linux 下,关于此部分的整个结构。弄了解,体系是怎么办理你的 nand flash 的,以及,体系都帮你做了那些准备作业,而剩余的,驱动底层完成部分,你要去完成哪些功用,才干使得硬件正常作业起来。

【内存技能设备, MTD ( Memory Technology Device )】

MTD ,是 Linux 的存储设备中的一个子体系。其规划此体系的意图是,关于内存类的设备,供给一个笼统层,一个接口,使得关于硬件驱动规划者来说,能够尽量少的去关怀存储格局,比方 FTL , FFS2 等,而只需求去供给最简略的底层硬件设备的读 / 写 / 擦除函数就能够了。而关于数据关于上层使用者来说是怎么表明的,硬件驱动规划者能够不关怀,而 MTD 存储设备子体系都帮你做好了。

关于 MTD 字体系的优点,简略解说便是,他协助你完成了,许多关于曾经或许其他体系来说,原本也是你驱动规划者要去完成的许多功用。换句话说,有了 MTD ,使得你规划 Nand Flash 的驱动,所要做的作业,要少许多许多,由于大部分作业,都由 MTD 帮你做好了。

当然,这个优点的一个“副作用”便是,使得咱们不了解的人去了解整个 Linux 驱动架构,以及 MTD ,变得愈加杂乱。可是,总的说,觉得是利远远大于弊,不然,就不只需求你了解,并且仍是做更多的作业,完成更多的功用了。

此外,还有一个重要的原因,那便是,前面说到的 nand flash 和一般硬盘等设备的特别性:

有限的通过出复用来完成输入输出指令和地址 / 数据等的 IO 接口,最小单位是页而不是常见的 bit ,写前需擦除等,导致了这类设备,不能像往常对待硬盘等操作相同去操作,只能采纳一些特别办法,这就诞生了 MTD 设备的一致笼统层。

MTD ,将 nand flash , nor flash 和其他类型的 flash 等设备,一致笼统成 MTD 设备来办理,依据这些设备的特色,上层完成了常见的操作函数封装,底层具体的内部完成,就需求驱动规划者自己来完成了。具体的内部硬件设备的读 / 写 / 擦除函数,那便是你有必要完成的了。

2.jpg

2.MTD 设备和硬盘设备之间的差异

多说一句,关于 MTD 更多的内容,感兴趣的,去附录中的 MTD 的主页去看。

关于 mtd 设备驱动,感兴趣的能够去参阅

MTD 原始设备与 FLASH 硬件驱动的对话

MTD 原始设备与 FLASH 硬件驱动的对话 – 续

那里,算是比较具体地介绍了整个流程,便利我们了解整个 mtd 结构和 nand flash 驱动。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/298091.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部