




已阅读5页,还剩65页未读, 继续免费阅读
(电路与系统专业论文)基于嵌入式linux的flash驱动与文件系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 f l a s h 存储器作为一类非易失性存储器,具有功耗低、读写快、容量大、成本低、抗震性好等优点而 被广泛应用于各种嵌入式系统,它包括f l a s h 存储芯片如n o rf l a s h 、n a n df l a s h ,以及一些f l a s h 存储 卡如c f 、m m c 、s d 卡等。本论文主要研究与实现n o rf l a s h 、n 6 d 呵df l a s h 和m m c 卡在一款3 2 位微处 理器平台上的应用与管理。 本论文基于嵌入式l i n u x 平台,设计并实现了以u n i t y 8 0 5 + 微处理器为核心的f l a s h 存储系统,包括硬 件接口设计、驱动和f l a s h 文件系统的设计与实现,其中u n i t y 8 0 5 + 是我国具有完全自主知识产权的基于 u n i c o r e 架构的3 2 位移动终端应用处理器。本文首先给出了嵌入式l i n u x 下f l a s h 存储系统模型,它包括 l i n u x 虚拟文件系统、f l a s h 文件系统和l i n u x 块设备驱动,并对模型的各个层次进行了分析,其中重点分 析了l i n u x 虚拟文件系统的结构与工作原理;其次,结合u n i t y 8 0 5 + 的多媒体卡控制器、外部存储接口控 制器的特点分别设计并实现了m m c 卡、n a n df l a s h 和n o rf l a s h 驱动,包括读、写和擦除操作等,实 现相应的l i n u x 块设备驱动和l i n u x 内存技术设备驱动接口并向系统注册;最后,在设备驱动的基础上, 根据f l a s h 存储器的擦除后才能写入和擦除次数有限等存储特性,通过对n a n df l a s h 专用的y a f f s 2 文 件系统进行改进,使之能应用于多种f l a s h 存储器,主要从文件存储方式、文件系统初始化、垃圾回收、 掉电保护等方面进行改进,并实现相应的文件系统格式化工具。 本文所实现的f l a s h 存储系统在基于嵌入式l i n u x 和u n i t y 8 0 5 + 微处理器平台的多媒体播放器上进行了 功能验证,f l a s h 上文件的读写速度能达到播放器的要求,系统性能稳定可靠。 关键词:嵌入式l i n u x 、f l a s h 存储器、设备驱动、文件系统、内存技术设备 a b s t r a c t a b s t r a c t f l a s hm e m o r yi san o n v o l a t i l es o l i ds t a t em e m o r ya n di sw i d e l yu s e di nm a n ye m b e d d e ds y s t e m sb e c a u s eo f i t sl o wp o w e rc o n s u m p t i o n ,f a s ti o ,l a r g ec a p a c i t y , l o wc o s t ,s h o c kr e s i s t a n c ep r o p e r t ya n de t c f l a s hm e m o r y t e c h n o l o g yh a sb e e na p p l i e di nm a n yf l a s hm e m o r yc h i p sa n dm o b i l ef l a s hm e m o r yc a r d s t h e r e 锄陀m a n yt y p e s o ff l a s hm e m o r yc a r d s ,s u c ha sc fc a r d ,m m cc a r d ,s dc a r da n de t c ,w h i l et h ef l a s hm e m o d rc h i p sa r ec l a s s i f i e d i i l t on o rf l a s ha n dn a n df l a s h t h er e s e a r c ha n di m p l e m e n t a t i o no fh o wt oa p p l yt h en o rf l a s h n a n d f l a s ha n d cc a r do na3 2 b i tm i c r o p r o c e s s o rp l a t f o r ma r ep r o p o s e di nt h i sp a p e r t h em a i nw o r ki st or e s e a r c ha n dr e a l i z et h ef l a s hm e m o r ys y s t e mb a s e do ne m b e d d e dl i n u xa n du n i t y 8 0 5 + m i c r o p r o c e s s o rp l a t f o r mi nt h i sp a p e r , i n c l u d i n gt h eh a r d w a r ei n t e r f a c ed e s i g na n dt h ed r i v e rd e s i g nf o rt h e 删c c a r d , n a n df l a s h ,n o rf l a s h ,a n dt h er e a l i z a t i o no ft h ef l a s hf i l es y s t e m , w h i l et h eu i l i t y 8 0 5 + c h i pi sa3 2 - b i t m o b i l et e r m i n a lm i c r o p r o c e s s o rb a s e do nu n i c o r ef r a m e w o r k t h ef l a s hm e m o r ) rs y s t e mm o d e li ne m b e d d e d l i n u xi sp r o p o s e df i r s ti nt h i sp a p e r , i th a sf o u rl a y e r sa n de a c hl a y e ro ft h em o d e lh a sb e e na n a l y z e d ,也e ya r e l i n u xv f s ,f l a s hf i l es y s t e m , l i n u xb l o c kd e v i c ed r i v e ra n df l a s hm e m o w a n dt h e nt h et o m ls o l u t i o n so ft h e h a r d w a r ei n t e r f a c ea n dd e v i c ed r i v e rf o r 删cc a r d nan df l a s ha n dn o rf l a s hb a s e do nt h e 删cc a r d c o n t r o l l e ra n dt h ee c o n t r o l l e ro ft h eu n i t y 8 0 5 + m i c r o p r o c e s s o ra r ep r o p o s e d , i n c l u d i n gt h er e a l i z a t i o no f l i n u xb l o c kd e v i c ef o rm m cc a r da n dl i n u xm e m o r yt e c h n o l o g yd e v i c ef o rn a n df l a s h n o rf l a s h f i n a l l y , a c c o r d i n gt ot h ec h a r a c t e ro ff l a s hm e m o r y , t h ey a f f s 2w h i c hc a no n l yb eu s e df o rn a n df l a s hh a sb e e n r e d e s i g n e dt om a k ei tc a nb eu s e df o ro t h e rf l a s hm e m o r y t h er e a l i z a t i o no fy a w s 2h a sb e e nr e d e s i g n e di nf o u r a s p e c t s ,s u c ha sf i l em a n a g e m e n t ,f i l es y s t e mi n i t i a l i z a t i o n ,g a r b a g ec o l l e c t i o na n dp o w e rf a i lp r o t e c t i o n ,w h i l et h e f i l es y s t e mf o r m a tt o o lh a sb e e nd e s i g n e d n ef l a s hm e m o r ys y s t e md e s c r i b e di nt h ep a p e rh a sb e e ns u c c e e d e di nr u n n i n gs t a b l yo no u rm e n 1 a y e r b a s e do ne m b e d d e dl i n u xa n du n j t y 8 0 5 + m i c r o p r o c e s s o rp l a t f o r m , a n dt h ef i l ei os p e e di nt h i ss y s t e mc a nm e e t t h er e q u i r e m e n t k e yw o r d s :e m b e d d e dl i n u x ,f l a s hm e m o r y , d e v i c ed r i v e r , f i l es y s t e m , m e m o d ,t e c h n o l o g yd e v i c e 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:霉簋塑蔓 日 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文挡,可以采用影印、缩印或其他复制手段保存论文。本人电子文挡的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生虢鳇趔丝导师虢髓日 绪论 课题研究背景与目的 绪论 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、 成本、体积、功耗有严格要求的专用计算机系统【l 】。近年来,我国嵌入式系统产业规模持续增长,已成为 信息产业的重要经济增长点,其中消费电子产业的蓬勃发展成为拉动嵌入式系统的重要动力,媒体播放器、 数码相机、l c d 电视和游戏机市场每年的增长都在1 0 以上。随着嵌入式硬件和软件的迅速发展,使得只 通过简单循环控制实现单一的管理已经不能满足用户需要,因此嵌入式操作系统应运而生,用于对日益复 杂的硬件资源进行系统地管理。嵌入式l i n u x 作为一种优秀的开放源代码的操作系统,近几年在嵌入式领域 异军突起,己经成为最有潜力的嵌入式操作系统【z j 。 随着嵌入式系统的日趋复杂,其对存储器的要求也越来越高,例如除了要求容量越来越大的同时,还 要求扩展方便、功耗低、节省空间等。f l a s h 存储器作为一类非易失性存储器,具有功耗低、读写快、容 量大、成本低、抗震性好等优点p 】,因此被广泛应用于各种嵌入式系统。f l a s h 存储器包括内置的闪存芯片 和可移动的闪存卡,闪存芯片按内部电路结构主要分为n o r 和n a n d 两种类型,其中n o rf l a s h 是由i n t e l 公司1 9 8 8 年首先推出的,是为了满足程序代码的高速访问和支持程序在芯片内部运行而设计的,具有 x i p ( e x e c u t ei np l a c e ) 特性和读取速度快的特点【4 j ,因此适合存储代码;而n a n df l a s h 相比具有写入速度 快、密度大的特点,因此适合用作大容量数据存储器,但其控制方式比较复杂且存在一定数量的坏块【5 j 。 闪存卡主要有c f 、m m c 、s d 卡等,m m c 卡即m u l t i m e d i a c a r d ,是一种通用的低成本数据存储介质,广 泛应用于数码影像、音乐、手机、电子书、玩具等消费类电子产品。由于f l a s h 存储器存在着两个主要缺 吲6 】:一是在重写之前必须进行擦除,而且f l a s h 存储器一般划分成很多擦除块,使得对任何一位数据进 行修改前必须先擦除整个块;二是擦除块的擦除次数有限,当一个块提前达到擦除次数上限时,将导致整 个f l a s h 存储器无法正常使用,而且应用中可能会经常出现坏块,这给f l a s h 存储器的存储管理增添了一定 的难度。 为了有效地使用闪存,合理地管理存储数据和实现数据共享,在闪存上构建文件系统是必然的选择。 目前己经有很多成熟的l i n u x 磁盘文件系统,如e x t 2 等,但是这些基于磁盘设备的文件系统并不适用于 嵌入式系统中f l a s h 的数据管理【7 】【8 】:第一,嵌入式系统电源供给的不稳定可能造成灾难性的后果,所以 嵌入式环境要求系统能快速地恢复,磁盘文件系统在这一点上考虑不足;第二,磁盘文件系统大量使用缓 存技术来提高文件系统的速度特性,通常要耗费比较多的系统资源,不适用于嵌入式系统资源有限的环境; 第三,常见的f l a s h 存储器限制了块擦除次数,磁盘文件系统没有考虑到这一点以实现各磁盘扇区的均衡 使用。另外,f l a s h 存储器的存储特性也不同于一般存储介质,它的读操作与普通的静态存储器s r a m 类 似,可以实现完全随机的字节读取,但是它的写操作较为特殊,需要经过“擦除和写入”两个操作过程, 当对f l a s h 中的一个存储单元进行写操作的时候,首先必须对这个存储单元所在的块执行擦除操作,擦除 操作完成后,整个块的内容被清空,通常被设置为0 x f f ;然后对目的单元所在的页执行写入操作,根据 f l a s h 存储器的状态判断操作是否成功并进行数据校验。当需要对文件进行数据更新或删除操作时,都需 要重复以上两个过程。基于这些原因,所以不能在闪存上直接使用传统的磁盘文件系统,目前在闪存上构 建文件系统的方法、技术主要有两种: 第一种是在驱动与文件系统之间添加f t l ( f l a s ht r a n s l a t i o nl a y e r ) 层,它为传统的磁盘文件系统提供了 模拟和透明的闪存块设备操作接口,f l a s h 存储器的损耗平衡和垃圾回收管理由f t l 层实现【9 】o 通过这种 方法,传统的磁盘文件系统就可以以相同的方式操作闪存设备和普通磁盘设备,这样就可以在f l a s h 上构 建传统的磁盘文件系统。这种方法实现简单,但是由于其实现过程中会额外的占用部分f l a s h 存储空间, 而且由于文件系统关键信息与f l a s h 存储管理信息以分离的形式存放,没有考虑到闪存的存储特性,这些 都会使其构建的存储系统性能降低。 第二种方法是设计基于闪存的专用文件系统,让文件系统在硬件驱动程序的基础上直接管理闪存上的 1 东南大学硕士学位论文 数据,现有且比较常用的有i f f s i f f s 2 ( t h ej o u m a l i n gf l a s hf i l es y s t e m ) 、y a f f s y a f f s 2 ( y e ta n o t h e rf l a s h f i l es y s t e m ) 等文件系统。它们都是对闪存设备进行直接管理的文件系统,其管理的方法和日志结构文件系 统【m 1 ( l o g s t r u c t u r e df i l es y s t e m ) 非常相似,都采用日志记录的方法来管理闪存设备【1 1 】【1 2 】,这样刚好避免了 闪存设备不能“就地更新”的问题。其主要实现思想是:当向闪存中写入新数据时,文件系统并不把原来 的数据块从闪存中立即擦除,而是在闪存的空闲区中写入新的数据块,并使原有的数据块变成过时的和无 效的。由于保留了文件的历史数据,这样就为恢复文件的旧数据提供了可能,提高了闪存文件系统的健壮 性。y a f f s 是英国a l e p ho n e 公司专为n a n df l a s h 设计的专用文件系统,目前有y a f f s l 和y a f f s 2 两 个版本,前者只支持页大小为5 1 2 字节的n a n df l a s h ,而新型大容量的n a n df l a s h 的页大小一般为2 0 4 8 字节,y a f f s 2 不但支持这两种页大小的n a n df l a s h ,而且支持一些具有严格写入时序的n a n df l a s h 。 j f f s 是a x i sc o m m u n i c a t i o n sa b 公司发布的专为嵌入式系统的n o rf l a s h 设备而设计的文件系统,已经 成为r e d h a t 嵌入式操作系统e c o s 的标准文件系统。但这些文件系统只是针对某一种f l a s h 存储器设计的, 当系统需要使用多种f l a s h 存储器时,就要求系统支持多种文件系统,这会耗费嵌入式系统中的一些宝贵 资源。 本课题的目的是为基于u n i t y 8 0 5 + 微处理器的个人媒体播放器设计并实现f l a s h 存储系统,包括硬件接 口设计、驱动和f l a s h 文件系统的设计与实现,f l a s h 文件系统的设计目标是使之能支持多种f l a s h 存储器, 以便于存储系统的扩展,并最终使得f l a s h 存储系统的读写性能能够满足播放程序的要求。其 u n i t y 8 0 5 + 微处理器是由东南大学国家专用集成电路系统工程技术研究中心和北京大学微处理器研究开发中心共同 设计的基于u n i c o r e 架构的3 2 位移动终端应用处理器,它内嵌有3 2 位高性能r j s c 处理器u n i c o r e 3 2 、m m u 和c a c h e ,芯片内核工作在2 0 0 m h z ,外设及总线工作在1 0 0 m h z ,支持u s b 2 0 接口,整合了内存控制器、 彩色l c d 控制器等。软件系统平台采用了l i n u x2 4 1 9 内核,l i n u x 是一个可裁剪、完全内存保护、多任务 多进程的操作系统,支持多种硬件平台,源码全部公开,开发的程序大部分相互兼容,使得系统设计更加 灵活并便于扩展。 f 课题主要研究内容与工作 本课题的研究工作主要是完成基于嵌入式l i n u x 操作系统和u n i t y 8 0 5 + 处理器平台的f l a s h 存储系统, 包括硬件接口设计、驱动和f l a s h 文件系统的设计与实现,具体研究工作如下: 学习n o rf l a s h 、n a n df l a s h 和m m c 卡的接口及操作方式,根据u n i t y 8 0 5 + 处理器的e m i 控制器 和m m c 控制器的原理设计硬件连接; 研究l i n u x 文件系统的结构,包括l i n u xv f s 的结构与实现原理,以及具体文件系统向v f s 注册、 安装等实现和用户通过v f s 访问具体文件系统的过程。分析嵌入式l i n u x 下具体文件系统的工作原理及设 计接口,文件系统是通过对设备上数据进行一定的抽象和管理来实现符合用户习惯的操作界面的软件系 统,本文主要围绕文件界面、目录界面及链接的实现来分析文件系统的设计原理。并研究l i n u x 系统的块 设备驱动接口及块设备r e q u e s t 方法的实现原理; 分析l i n u xm t d 子系统的工作原理,并基于本课题所采用的硬件方案设计n a n df l a s h 、n o rf l a s h 的驱动,实现相应的m t d 驱动接口并向系统注册; 根据m m c 卡协议中所定义的m m c 卡操作时序,设计m m c 卡驱动,包括m m c 卡的初始化和读、 写操作等,并实现l i n u x 块设备驱动接口。分析f a t 3 2 文件系统的原理,并在m m c 卡上构建f a t 3 2 文件 系统; 在设备驱动的基础上,根据f l a s h 存储器的擦除后才能写入和擦除次数有限等存储特性,通过对 n a n df l a s h 专用的y a f f s 2 文件系统进行改进,使之能应用于n o rf l a s h 、n a n df l a s h ,m m c 卡等一类 f l a s h 存储器,主要从文件存储方式、文件系统安装、垃圾回收、掉电保护等方面进行改进实现,设计中 采用f a t 文件系统以f a t 表的形式来索引文件数据的存储位置的方法,使用效率和均衡原则相结合的方 式来回收f l a s h 存储块,并实现相应的文件系统格式化工具,在f l a s h 上构建好文件系统,最后在系统平台 上进行安装时间和损耗平衡性能测试; 分析l i n u x 内核配置系统和编译系统工作原理,进行m a k e f i l e 文件和c o n f i g i n 配置文件的编写,并 2 绪论 对系统进行相应的配置,最后对n o rf l a s h 、n a n df l a s h 和m m c 卡的存储性能进行一些测试。 论文主要内容 根据论文所涉及到的主要研究工作,将论文结构安排如下: 第章,嵌入式l i n u x 存储系统概述。本章首先给出了嵌入式l i n u x 下f l a s h 存储系统模型,它包括 l i n u xv f s 、f l a s h 文件系统和l i n u x 块设备驱动,然后对模型的各个层次进行分析,其中重 点分析了l i n u xv f s 的结构与工作原理,以及具体文件系统向v f s 注册、安装等实现和用户 通过v f s 访问具体文件系统的过程: 第二章,软硬件平台及f l a s h 存储系统设计。介绍系统软硬件平台及调试环境的设计方案,根据处理 器和f l a s h 存储器的接口设计硬件连接方案; 第三章,m m c 卡存储管理的设计与实现。设计m m c 卡驱动,包括m m c 卡的初始化和读、写操作 等,并实现l i n u x 块设备驱动接口,分析f a t 3 2 文件系统的原理,并在m m c 卡上构建汀3 2 文件系统: 第四章,n a n df l a s h 和n o rf l a s h 驱动的设计与实现。分析l i n u xm t d 子系统的工作原理,并基于 本课题所采用的硬件方案设计n a n d f l a s h 、n o r f l a s h 的驱动,实现相应的m t d 驱动接口 并向系统注册; 第五章,f l a s h 文件系统的实现。阐述y a f f s 2 文件系统实现的原理,包括文件级界面、目录级界面 及链接的实现,主要从文件存储方式、文件系统初始化扫描过程、垃圾回收、掉电保护机制 方面对y a f f s 2 进行改进,使之能应用于多种f l a s h 存储器,并设计文件系统格式化工具, 最后在系统平台上进行了安装时间和损耗平衡性能的测试; 第六章,系统配置和功能测试。分析l i n u x 内核配置系统和编译系统工作原理,进行m a k e f i l e 文件和 e o n f i g i n 配置文件的编写,并对系统进行相应的配置,最后对n o rf l a s h 、n a n df l a s h 和 m m c 卡的存储性能进行一些测试。 3 东南大学硕士学位论文 第一章嵌入式l i n u x 存储系统概述 嵌入式l i n u x 存储系统一般包括l i n u xv f s ( v i r t u a lf i l es y s t e m ) 、文件系统、块设备管理器及存储设 备驱动、存储设备,图卜1 显示了嵌入式l i n u x 中一个基本的f l a s h 存储系统模型13 1 。 (应譬口) 1 广 jl 1 、, l i n u xv f s i f a t 蒜蚓 f l a s h 鞫嵩系统 (块设叠动层) 1 上 f l a s h 存储器 图1 - 1f l a s h 存储系统模型 从图1 - 1 中可以看出:l i n u x 存储系统模型的最上层是l i n u x 为用户程序提供的虚拟文件系统模块,它实 现了一组标准的文件操作,并以系统调用的方式供用户程序使用,如o p e n 、r e a d 、w r i t e 、l s e e k 、i o c t l 操作 等。这样,用户程序就可以把所有的数据文件都看作一致的、抽象的“v f s 文件”,通过这些系统调用对 文件进行操作,而不需要关心具体的文件属于什么文件系统以及具体文件系统的设计和实现:虚拟文件系 统下层是各种具体文件系统,它根据设备的特点采取某种策略实现对设备的存储管理:最下面两层就是块 设备驱动和所用存储设备,块设备驱动实现对设备的读、写操作等,完成文件系统对存储设备发出的读、 写请求。下面将由下往上对模型的各个部分进行具体阐述。 1 1f l a s h 存储器概述 f l a s h 存储器是一种b l o c k e r a s a b l e 存储设备,是由早期的b y t e e e p r o m 改进的,后者是以字节为单位 进行擦除的,但是采用这种技术的存储单元较复杂,且成本较高,于是基于b l o c k 擦除的存储技术被提出, 这种存储技术采用以多个字节为单位的方式进行擦除,一次被擦除的最少字节数就称为一个b l o c k ,这样 简化了存储单元结构,也降低了成本。 本课题研究的系统平台是基于u n i t y 8 0 5 + 处理器和嵌入式l i n u x 操作系统的个人媒体播放器,f l a s h 存储 器方案采用n o rf l a s h 、n a n df l a s h 和m m c 卡相结合的方式实现。n o rf l a s h 存放b o o t l o a d e r 和内核镜像; n a n df l a s h 主要存放系统相关数据,如根文件系统、媒体播放应用程序等;m m c 卡存放多媒体数据,如 电影和歌曲等。 n a n df l a s h 采用的n a n df l a s h 的容量为1 2 8 m b ,型号为k 9 f 1 g 0 8 u o a ,它的工作电压为3 3 v ,由1 0 2 4 个块组成, 每个块6 4 页,而每一页由2 0 4 8 字节的数据和额外的6 4 字节的附加数据区( o u to f b a n d ,后面简称o o b 区) 构成l l4 j ,如图卜2 所示。 n o r f l a s h 采用的n o rf l a s h 的容量为1 6 m b ,由1 2 8 个大小为1 2 8 k b 的块组成,支持c f i t l 5 ( c o m m o nf l a s hi n t e r f a c e ) 4 第一章嵌入式l i n u x 存储系统概述 接口规范,c f i 接口规范定义了一类f l a s h 与主机系统交互的方法,使得系统软件能兼容所有根据此规范设 6 4 * 1 0 2 4 页缓存 l 块= 6 4 页 应8 位数据线 l 页- - - - - 2 11 2 字节 1 块= 2 11 2 字节页* 6 4 页 图卜2k 9 f 1 g 0 8 u o a 内部存储结构 计的f l a s h 芯片,它规定各f l a s h 芯片厂商设计的操作命令集等必须有一个统一的编号,并且在初始化时可以 通过统一的操作查询到这个编号,它还定义了f l a s h 芯片的许多属性信息,如芯片的工作电压、芯片容量、 擦除块的个数、各种操作所需时间等,并用一个标准的数据结构e p c f i 信息块来提供芯片的更详细的信息, 所有支持c f i 接口的f l a s h 芯片在收到查询命令时都应能按照这个结构的格式提供相应信息。 o m m c 卡 m m c 卡( m u l t i m e d i a c a r d ) 是由美国s a n d i s k 公司和德国s i e 删s 公司在1 9 9 7 年共同开发研制的一 种多功能、体积小巧而容量大的快速闪存存储卡,并在1 9 9 8 年1 月由十四家公司联合成立了m m c 协会 ( m u l t im e d i ac a r da s s o c i a t i o n ,简称m m c a ) ,旨在推广m m c 卡的应用。i v i l v i c 卡的应用目标主要是针对 移动电话、数码相机、数码摄像机、i v i p 3 、p d a 、电子书、玩具等产品【1 6 i 。m m c 卡在一定程度上改善了 c f 卡读写速度较慢的缺点,并且体积轻巧,抗冲击性强,可反复读写3 0 万次左右;具备存储区纠错能力 和低功耗特性,如果在5 m s 内没有接收到命令控制字,m m c 卡会自动转人休眠状态;同时还支持热插拔。 m m c 卡4 0 标准定义了更宽的数据带宽和更快的传输速率,并支持双电压操作模式。本课题采用k i n g s t o n 公司的m m c m o b i l e 卡,它是根据m m c 4 0 标准设计的两种新型m m c 卡之一,m m c m o b i l e 卡的特征包 括: 外形尺寸为r s m m c 卡尺寸( 1 8 x 2 4 x 1 4 r a m ) ; 同时支持1 6 5 v 一1 9 5 v 及2 7 v 3 6 v 两种工作电压; 工作频率为2 6 m h z ,而5 2 m h z 为可选的时钟频率; 支持1 4 8 位三种可选的总线模式; 理想应用:对尺寸空间和电池续航能力要求很高的手机及其它手持便携式设备。 1 2l i n u x 块设备驱动 1 2 1 设备驱动介绍 操作系统的一个目标就是掩盖系统硬件的差别,为用户提供一个统一的编程接口,由于操作系统所要 支持和处理的硬件设备种类繁多,具有各自的特性,且更新很快,所以若要把所有设备的驱动控制代码写 进操作系统内核中,会使其过分庞大。为此,l i n u x 在内核和驱动程序之间定义了一个统一的接口,使双 方仅通过这个接口交互信息。这样,当内核需要与某个设备交互时,就找到该设备驱动程序,然后通过标 准的接口调用驱动程序的相应函数来控制设备,内核不需要知道驱动程序如何工作、如何控制一个具体的 设备。驱动程序的实现也变得非常统一,一个驱动程序就是利用硬件的特征对接口函数的一个实现,这样, 硬件厂商和第三方用户都可以开发自己的驱动程序。 l i n u x 定义的设备驱动程序接口包括两个方面: 5 东南大学硕士学位论文 驱动程序向内核提供的接口函数集。每个驱动程序都应该向内核提供个接口函数集,不同种类的 驱动程序需要提供的接口函数集不同。当内核需要驱动程序为其服务时,它直接调用驱动程序的相应函数, 由于该接口的存在,使得内核可以用完全相同的方式看待和操作完全不同的设备; 内核向驱动程序提供的接口函数集。定义在k e m e l k s y m s c 中,它包括了驱动程序可以使用的内核 函数及数据结构,当驱动程序需要内核为其服务时,就可以调用这个函数集中的函数,也可以直接引用这 些数据结构。 如上述,驱动程序是屏蔽了具体硬件细节的一层抽象实现,位于操作系统的最底层,是整个操作系统 的基础。为了更好地管理各种硬件设备,l i n u x 驱动分为字符设备、块设备和网络设备驱动。字符设备是 能够像字节流一样被访问的设备,大多数字符设备只能被顺序访问;块设备是以随机访问的方式传输数据, l i n u x 块设备驱动每次都是读写设备的固定大小的数据块,其大小为设备扇区的整数倍,但不超过4 k 字节。 硬盘就是典型的块设备,块设备驱动接口详细信息如1 2 2 节所述。 1 2 2 块设备驱动接口 由于对块设备的操作非常频繁,其操作的速度直接影响整个系统的性能。因此,在l i n u x 中当用户要读、 写块设备上的数据时,并不立即调用块设备驱动的读、写操作函数,而是把对每个块设备或其分区的读、 写请求挂到相应块设备的请求队列上排队,然后对请求队列优化处理,选择最合适的时机和算法,再间接 调用块设备的读、写函数来操作设备。这样,l i n u x 必须为每个块设备提供一个读写请求队列,其队列头分 别存放在b l kd e v 数组中,该数组还包含了系统当前的所有请求等信息。每个块设备在b l kd e v 数组中占一 项,用块设备的主设备号索引,该数组也是块设备和b u f f e r c a c h e 的接口,每当b u f f e r c a c h e 要从一个块设 备读、写数据时,它就在b l kd e v 数组中设备对应的队列上增加一个r e q u e s t 结构。另外,每个块设备在初始 化时必须向内核注册其相应的接口函数集,其结构体定义如下: 其中o p e n 是设备打开函数,它一般完成设备的初始化工作;而r e l e a l s e 函数则在关闭设备时调用,主要 用于设备关闭前进行一些清理工作,如资源的回收等;i o c t l 接口一般用于设备控制以及设备信息的获取, 在块设备驱动中,可以利用i o c t l 接口获得设备大小等属性信息;其它两个接口用于支持可移动存储设备, c h e c l u n e d i 曩- c h 粕g e 函数用于检查自从上次访问以来设备是否发生变化,他v a l i d a t e 函数用于在设备发生变 化后重新初始化驱动程序状态。 1 2 3 块设备驱动的r e q u e s t 方法 在注册块设备驱动时,接口函数集中没有r e a d 和w r i t e 接口函数,所有涉及到块设备的读写都由系统缓 冲,即经过块缓冲区b u f f e r 。读操作要把包含需要数据的一到多个数据块整个读入b u f f e r ,而后再从中挑出 需要的数据;写操作在执行以前需要在b u f f e r 中预先组装好要写入的数据,必要时还要先把相应数据块读 入b u f f e r ,而后再将组装好的b u 仃e 广次性写入块设备。l i n u x 使用多种方法来提高存储系统的性能,如建立 b u 仃e r 缓存的方法,内核对缓存提供统一的管理和操作,达到延迟读写操作的目的,当l i n u x 内核需要进行 一次块数据传输时,它首先在一个链表队列中对该请求排队,并以优化系统性能为原则进行排序,这个队 列即请求队列。然后,请求队列被传递给该块设备驱动程序的r e q u e s t 函数,由该函数完成设备上数据的读 写。 传给此函数的参数即文件系统层发出的读、写请求r e q u e s t 结构,它记录了所要读或写的起始数据扇区 号、总扇区数等,一个典型的r e q u e s t 函数需要完成以下处理工作: 6 第一苹嵌入式l i n t t x 存储系统概述 测试请求的有效性。该测试通过定义在b l k h 文件中的i n i tr e q u e s t 宏完成,用来检查该设备对应 的请求队列是否为空、当前请求是否对应该设备等,以防止产生读写错误; 执行实际的数据传输。c 1 瓜r d 盯变量( 实际上是一个宏) 指向该设备的读写请求队列头,由它获 得需要处理的请求结构,这样具体的读写函数就可以知道需要读写的数据位置、大小、读写数据在内存中 应存放的位置等; 清除已经处理过的请求。处理完当前请求后,需要对块设备层的缓冲结构进行一些清理工作,为下 次读写设备做好准备。该操作可以由内核提供的e n dr e q u e s t i 蚕数完成,该函数是一个静态函数,代码位于 b l k h 文件中,只需要传递一个参数给此函数,当实际的数据传输成功执行时传递1 ,否则传递0 ,使得该 函数能做相应的处理。e n dr e q u e s t 主要管理请求队列并唤醒等待i o 操作的进程,该函数同时更新c u r r e n t 变量所指向的请求,确保它指向下一个未处理的请求; 返回开始处,开始处理请求队列中的下一条读写请求。 所以实现块设备驱动的主要工作是实现相应i 拘r e q u e s t 处理函数,l i n u x 块设备驱动实现的层次较多,与 文件系统层的交互多,设备访问的详细过程将在1 4 5 节阐述。 1 3 嵌入式f l a s h 文件系统 1 3 1 文件系统概述 文件系统是操作系统中负责管理和存取文件信息的软件系统,它是由管理文件所需的数据结构( 如目 录表、文件控制块、存储分配表) 和访问控制文件的一组操作所组成。从系统角度看,文件系统要实现对 存储器的存储空间的组织与分配,并负责文件的存储和对设备上的文件进行保护、检索等;从用户角度看, 文件系统主要是实现“按名存取”,即当用户要求创建或保存一个已命名的文件时,文件系统应根据一定 的格式把此文件存放到存储器适当的地方,当用户要使用该文件时,系统根据给出的文件名,能够从存储 器的某位置找到所要的文件,或文件中某个记录。因此,文件系统要使用户( 包括操作系统本身及一般用 户) 只要知道文件名字就可存取文件内容和相关属性信息,而不需要知道这些文件的具体存放方式和位置。 用户使用文件系统管理存储器上的数据时要求能够方便地进行数据读写、维护和更新。例如,用户在 存取存储器上的数据时不希望接触和涉及存储器物理空间地址、存储器接口地址和寄存器等这些物理硬件 细节,而要求对数据进行一定的抽象和管理来实现符合用户习惯的界面,即文件系统界面,可具体分为文 件界面和目录界面。 文件界面 文件是用户观点中其内容具有连续顺序关系的最大外存逻辑数据空间,但其在外存上的物理存储不一 定是连续顺序的;而且是最大的逻辑数据空间,区别于文件中的记录。文件像个存放数据的容器,是文件 系统提供给操作系统和上层用户的一个重要界面机制。由于一个存储介质上会存放多个文件,所以需要为 每个文件起文件名,文件系统需要为每个文件名与该文件在设备上存放的位置间建立对应关系,而且,在 多用户环境下,为了文件安全还需要为每个文件建立和维护关于文件创建者的访问权限等方面的信息,这 些信息统称为文件属性信息,它还包括文件类型、文件长度,这些都不属于文件本身的内容,但是用户需 要文件系统保存这些信息,并提供查询这些信息的操作。所以文件界面需要实现的操作和功能主要有: 1 文件的按名存取:即文件内容的读、写操作,为了适应用户的操作习惯,通常还要实现文件的打开、 关闭操作,因为在使用一个文件前先打开和使用完后再关闭这种方式已经成为用户默认的操作方式,其中 在打开操作中可以实现对文件是否存在进行测试、文件权限许可和文件是否已经打开等测试,只有当用户 成功打开文件时才可对文件内容、属性进行存取或改写。另外,还需提供一个能设置文件当前读、写指针 的操作,方便用户随机读写。 2 文件属性的维护及相应操作:如l i n u x 中i s 命令就要通过访问文件系统中的这些信息并调用相关操作 而实现。 为实现这些功能,文件系统要解决下列几个问题: 如何有效地分配和回收存储器设备的存储空间; 7 东南大学硕士学位论文 文件、目录如何建立和维护; 如何有效地实现从逻辑文件( 用户层次) 到物理文件( 驱动层次) 之间的转换; 实现文件共享、保护和保密措施。 文件数据存储的实现方法有:连续分配策略和非连续分配策略。前者是指每个文件在设备上是连续存 放的,即每个文件在设备上占据连续的物理块号,并在其中连续顺序存放。这两种策略的实现所要面对和 解决的问题各不相同,一般为了高效地利用存储空间都使用非连续分配策略,而实现逻辑文件到物理文件 转换的策略和算法需综合考虑多种因素,这是设计文件系统的最重要的方面。 目录界面 存储设备上可以同时存放多个文件,用户一般需要有一个清单,列出在该设备上有哪些文件,并提供 该清单的查询操作等,因此,文件系统要自动创建和维护这个清单,这个清单即目录。大多数文件系统都 是建立和维护一个多级目录,目录中每个目录项描述相应的目录有哪些文件和子目录以及它们的一些属性 信息,文件系统一般将所有目录组织在一起存放在设备上某个固定的区域,如f a t 文件系统的根目录紧邻 f a t 表存放。目录界面需提供查询目录、遍历目录的操作。此外,大多数文件系统需实现文件的链接,即 允许一个文件同时属于多个目录,但实际上该文件只有一处物理存储,包括硬链接和符号链接,这给目录 的设计带来一定的难度。 在多级目录结构中,目录的实现方法主要是采用目录文件法,即将一个目录看作一个文件并作为一个 文件来存放,该文件的内容就是该目录所包含的所有文件或子目录的名称以及它们的一些属性信息。这样, 目录的存放位置就不一定要固定在设备的某个已知区域,而可以像文件一样随即存放。 1 3 2j f f s 2 文件系统 2 0 0 1 年3 月1 7 日,r e dh a t 公司发布了j f f s 2 文件系统,它是专门面向f l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CPU利用率提升-洞察及研究
- 餐厅员工的入职合同6篇
- 金属材料冶炼技术发展与文化传承的协同发展-洞察及研究
- 期末测试(基础卷)-2025-2026学年译林版(三起)英语六年级上册(含答案含听力原文无听力音频)
- 教育咨询策划服务方案
- 手托臀上楼图文课件
- 手工覆膜安全培训课件
- 学生托管班饮食安全培训课件
- 注册木土工程师岩土专业知识题库备考题库及答案
- 所有者权益的课件
- 幼儿园红色故事:一封鸡毛信
- 水利工程道路工程施工质量评定表填写模板
- 中秋国庆双节活动主题
- 2024年深圳市房屋租赁合同(3篇)
- 餐饮外卖平台食品安全管理制度
- 创新方法大赛理论知识考核试题题库及答案
- 辽宁省大连市甘井子区2024-2025学年上学期七年级 月考英语试卷(10月份)
- 地质灾害防治工程勘察规范DB50143-2003
- 介绍费合同书范本
- 中考英语高频词汇大纲表(人教版)
- 共享办公室租赁合同
评论
0/150
提交评论