《Flash设备驱动》PPT课件.ppt

《Flash设备驱动》PPT课件.ppt

ID:52065295

大小:339.00 KB

页数:30页

时间:2020-03-31

《Flash设备驱动》PPT课件.ppt_第1页
《Flash设备驱动》PPT课件.ppt_第2页
《Flash设备驱动》PPT课件.ppt_第3页
《Flash设备驱动》PPT课件.ppt_第4页
《Flash设备驱动》PPT课件.ppt_第5页
资源描述:

《《Flash设备驱动》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第24章Flash设备驱动Flash存储器是近几年来发展最快的存储设备,通常也称作闪存。Flash属于EEPROM(电可擦除可编程只读存储器),是一类存取速度很高的存储器。它既有ROM断电可保存数据的特点,又有易于擦写的特点。Flash可以在断电的情况下长期保存信息,因此被广泛的应用在PC机的BIOS和嵌入式系统的存储设备。本章主要内容如下:Flash存储器的硬件结构和存储原理Linux内核MTD设备支持Flash编程框架Flash驱动实例24.1LinuxFlash驱动结构Linux内核对Flash存储器

2、有很好的支持。内核设计了一个MTD结构支持Flash设备,用户只需要按照MTD的要求设置Flash设备的参数并且提供驱动就可以让Flash设备很好的工作。本节介绍内核MTD的系统结构。24.1.1什么是MTDMTD是英文MemoryTechnologyDevice的缩写,中文可以直接译为内存技术设备。MTD是Linux内核为支持闪存设备的一个驱动中间层。对内核其他部分来说,MTD屏蔽了闪存设备的细节;对于闪存设备驱动来说,只需要向MTD中间层提供接口就可以向内核提供闪存设备支持。Linux内核提供了一些与M

3、TD相关的术语,解释如下:JEDEC:JCFI:OOB:ECC:EraseSize:BusWidth:NAND:NOR:24.1.2MTD系统结构Linux内核MTD设备相关代码在drivers/mtd目录下,设计MTD的目的是让新的闪存设备使用更简单。MTD设备可以分层四层。24.1.2MTD系统结构24.2Flash设备基础NAND和NOR是两种不同的Flash存储技术,它们各有不同,适合不同的工作范围。编写一个闪存设备的驱动不仅需要了解MTD的结构,还需要知道闪存设备的硬件原理。本机介绍两种不同的闪存

4、工作原理,并且比较它们之间的异同。24.2.1存储原理NAND和NOR闪存都使用三端器件作为存储单元,学过模拟电子技术的读者可能了解一种叫做场效应管的器件,与此原理类似。三端器件分别有源极、漏极和栅极,栅极利用了电场效应控制源极于漏极之间的通断。24.2.2性能比较NORFlash技术最早是Intel公司研发出来的,紧接着东芝公司研发出了NANDFalsh技术。NOR闪存的特点是支持片内执行(ExecuteInPlace),应用程序不必加载到RAM就可以直接运行,简化了软件开发。NOR闪存的读取速率非常高,

5、但是容量通常不大,因为容量大成本会显著增大。此外,NOR闪存的写入和擦除速度非常慢,不利于大量数据存储。NANDFlash特点是存储密度高,写入和擦除速度都比NORFlash快,适合大数据量存储。但是,NANDFlash需要特殊的存储电路控制,并且空的或者已经擦除的单元才能写入数据,所以必须在写入数据之前先擦除块。24.3内核MTD层由于NOR和NANDFlash的物理特性差异,Linux内核设计了MTD层用于管理两种不同类型的Flash设备。MTD层对内核空间其他部分屏蔽了Flash的差异,有几个比较重要

6、的数据结构,在设计闪存驱动的时候需要了解,本节以Linux内核2.6.18版本为例介绍。24.3.1mtd_info结构mtd_info结构是MTD原始设备层的一个重要结构,该结构定义了大量的关于MTD的数据和操作,定义在include/linux/mtd/mtd.h头文件。mtd_info结构成员主要由数据成员和操作函数两部分组成。24.3.2mtd_part结构mtd_part结构描述分区,该结构中的mtd_info结构成员用于描述本分区,加入到mtd_table全局变量中。结构定义在drivers/m

7、td/mtdpart.c。27/*Ourpartitionnodestructure*/28structmtd_part{29structmtd_infomtd;30structmtd_info*master;31u_int32_toffset;32intindex;33structlist_headlist;34intregistered;35};24.3.3mtd_partition结构内核代码drivers/mtd/mtdpart.c文件内定义了添加和删除闪存分区的函数如下:intadd_mtd_pa

8、rtitions(structmtd_info*master,conststructmtd_partition*parts,intnbparts);intdel_mtd_partitions(structmtd_info*master);24.3.4map_info结构NORFlash驱动使用map_info结构作为核心数据结构。该结构定义了NORFlash的基址、位宽、大小等信息以及闪存的操作函数。24.3.5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。