- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章Flash设备驱动
第24章 Flash设备驱动 24.1 Linux Flash驱动结构 24.2 Flash设备基础 24.3 内核MTD层 24.4 Flash设备框架 24.5 Flash设备驱动实例——NOR Flash设备驱动剖析 24.6 Flash设备驱动实例——NAND Flash设备驱动分析 24.1 Linux Flash驱动结构 24.1.1 什么是MTD 24.1.2 MTD系统结构 24.1.1 什么是MTD Linux内核设计了一个MTD(Memory Technology Device,内存技术设备)结构支持Flash设备,只要按照MTD的要求设置Flash设备的参数并提供驱动,就可让Flash设备工作。 MTD是Linux内核为支持闪存设备的一个驱动中间层。对内核其他部分来说,MTD屏蔽了闪存设备的细节;对于闪存设备驱动来说,只需要向MTD中间层提供接口就可以向内核提供闪存设备支持。 JEDEC CFI OOB ECC EraseSize BusWidth NAND NOR 24.1.2 MTD系统结构 Linux内核MTD设备相关代码在drivers/mtd目录下,设计MTD的目的是让新的闪存设备使用更简单。MTD设备可以分为4层。 1.设备节点层 2.MTD设备层 3.MTD原始设备层 4.硬件驱动层 1.设备节点层 通过mknod命令可以在/dev目录下建立MTD字符设备节点(主设备号90)和MTD块节点(主设备号31),通过设备节点可以访问MTD字符设备和块设备。 2.MTD设备层 MTD设备层基于MTD原始设备,向上一层提供文件操作函数,如lseek()、open()、close()、read()、write()等。MTD块设备定义了一个描述MTD块设备的结构mtdblk_dev,并且声明了一个mtdblks数据用于存放系统所有注册的MTD块设备。MTD设备层代码存放在drivers/mtd/mtd_blkdevs.c和drivers/mtd/mtdchar.c文件内。 3.MTD原始设备层 MTD原始设备层由两部分组成,一部分包括MTD原始设备的通用代码,另一部分包括特定的Flash数据,如闪存分区等。MTD原始设备的mtd_info结构描述定义了有关MTD的大量数据和操作函数。 drivers/mtd/mtd_core.c 全局变量mtd_table作为MTD原始设备表 drivers/mtd/mtd_part.c 全局变量mtd_part作为MTD原始设备分区结构,包含mtd_info结构。每个分区作为一个原始设备。 drivers/mtd/maps目录 存放特定的闪存数据,该目录下每个文件对应一种类型开发板的闪存。调用函数add_mtd_device( )可建立一个mtd_info结构并加入到mtd_table中。del_mtd_device函数可从mtd_table中删除一个闪存设备。 4.硬件驱动层 该层负责在系统初始化的时候驱动闪存硬件。 Linux内核的MTD设备中,NOR Flash设备遵守CFI结构标准,其驱动代码放在drivers/mtd/chips目录下。 NAND Flash设备驱动代码放在drivers/mtd/nand目录下。 一个MTD原始设备通过mtd_part结构分成多个MTD原始设备,然后注册到mtd_table中。 mtd_table中的每个MTD原始设备都可以注册为一个MTD设备,字符设备的主设备号为90,次设备号奇数代表只读设备,偶数代表可读写设备;块设备的主设备号为31,次设备号为连续的自然数。 4.硬件驱动层 24.2 Flash设备基础 24.2.1 存储原理 24.2.2 性能比较 24.2.1 存储原理 24.2.2 性能比较 NOR闪存的特点是支持片内执行,程序可直接在上面运行而不必加载到RAM。NOR闪存的读取速度很快,但容量通常不大;其写入速度很慢,不利于大量数据存储。 NAND闪存的特点是存储密度高,写入和擦除速度都比NOR Flash快,适合大数据量存储。NAND闪存需要特殊的存储电路控制,且只有空或擦除后的单元才能写入数据,因此必须在写入数据之前先擦除块。 NOR闪存在擦除块之前必须把所有的数据写为0.NOR按照64KB~128KB为一块擦除,平均时间5S NAND闪存擦除以8KB~32KB为单位擦除,时间4ms左右。 NAND的写入速度高于NOR; NOR的读速度高于NAND; NAND的擦除速度远高于NOR; NAND的擦除单元小,因此需要的擦除电路也会减小。 NOR闪存带有SRAM接口,有足够引脚寻址,可读取内部每个字节;NAND闪存串行读取数据,复杂复杂的I/O电路
您可能关注的文档
- 第章 第节 孟德尔的豌豆杂交实验一.ppt
- 第章 数据库系统结构.ppt
- 第章 线性结构.ppt
- 第章 职业发展管理.ppt
- 第章 系统综合.ppt
- 第章 物联网感知技术.pptx
- 第章 简单的C程序设计.ppt
- 第章 脑血管病的一级预防.ppt
- 第章 统计整理部分.ppt
- 第章 表的基本操作.ppt
- 中国国家标准 GB/T 15445.3-2025粒度分析结果的表述 第3部分:试验曲线的参考模型拟合.pdf
- 《GB/T 15445.3-2025粒度分析结果的表述 第3部分:试验曲线的参考模型拟合》.pdf
- 中国国家标准 GB/Z 41305.3-2025环境条件 电子设备振动和冲击 第3部分:利用轨道车辆运输.pdf
- 《GB/Z 41305.3-2025环境条件 电子设备振动和冲击 第3部分:利用轨道车辆运输》.pdf
- GB/Z 41305.3-2025环境条件 电子设备振动和冲击 第3部分:利用轨道车辆运输.pdf
- 中国国家标准 GB/T 46713.4-2025轨道交通 机车车辆 辅助供电系统蓄电池 第4部分:镍氢蓄电池.pdf
- 《GB/T 46713.4-2025轨道交通 机车车辆 辅助供电系统蓄电池 第4部分:镍氢蓄电池》.pdf
- GB/T 46713.4-2025轨道交通 机车车辆 辅助供电系统蓄电池 第4部分:镍氢蓄电池.pdf
- 中国国家标准 GB/Z 106-2025质量管理体系 组织变革管理 过程.pdf
- GB/Z 106-2025质量管理体系 组织变革管理 过程.pdf
原创力文档


文档评论(0)