欢迎来到天天文库
浏览记录
ID:61499505
大小:108.88 KB
页数:6页
时间:2021-02-07
《嵌入式Linux的DiskOnChip设备驱动开发.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、嵌入式Linux的DiskOnChip设备驱动开发时间:2009-05-1223:33来源:LinuxWebsite作者:尚观点击:61次1引言在以计算机技术、通讯技术相结合的信息时代的快速发展和互联网广泛应用的形势下,3C(Computer,Communication,Consumer)合一的趋势已经形成,其结果必然就是将计算机工业的中 1 引 言在以计算机技术、通讯技术相结合的信息时代的快速发展和互联网广泛应用的形势下,3C(Computer,Communication,Consumer)合一的趋势已经形成,
2、其结果必然就是将计算机工业的中心从计算产品转移到嵌入式信息产品。然而由于嵌入式系统的应用要求及成本因素决定了嵌入式系统在系统资源,包括硬件资源和软件资源方面都是非常精简和高效的。因此在嵌入式系统中的存储设备一般不会采用硬盘等大容量高功耗设备,而改用诸如CompactFlash,EPROM等存储介质。因此本文就M-systems公司开发的新一代闪存FlashDiskOnChip2000,介绍在基于嵌入式Linux系统上文件系统和块设备的支持及驱动。2 硬件系统结构电子盘的内部存储介质Flash是近几年来发展最快的一种
3、存储芯片,他具有E2PROM可擦写的特点,又同时具有EPROM廉价的特点,他是一种高性能、低功耗、电可擦除的存储器件。根据其以上一些特点,电子盘已广泛应用于信息存储、机顶盒、网络计算以及嵌入式计算机等领域。M-system公司推出的DiskOnChip2000系列是新一代闪存磁盘(FlashDisk)。为标准32脚DIP封装,他与标准的E2PROM完全兼容。一般的闪存器(FlashMemory)只包含存储器部分,而控制器要另加。为了对闪存磁盘进行管理,DiskOnChip中已装有MSystem公司的闪存文件系统(T
4、rueFFS)软件。这使得他使用简单,工作中不需要任何其他特殊复杂的算法。他的读/写与硬盘完全相同,因此他可以作为独立硬盘使用,并与其他磁盘兼容。可以直接引导计算机系统而不需要其他系统盘。他适用于3.3V和5V电源,功耗很小,对于那些空间受限,小型便携式装置,DiskOnChip将是最佳选择。DOC2000结构主要由系统接口单元(SystemIterface)、系统引导模块(BootBlock)、闪存控制单元(FlashControl)以及和Flash存储介质等组成,其结构如图1所示。其中系统接口单元为DOC200
5、0提供了类似SRAM的接口,使之能够通过CPU的本地总线、ISA总线以及SRAM总线建立与操作系统的连接。DOC提供片选信号(CE#)、读写信号(WE#)、使能信号(OE#)以及13位宽的地址线(A[0:12])和8位宽的数据总线(D[0:7])。系统接口在主总线信号(读、写、地址和片选)的控制下产生相应的控制信号送入闪存磁盘,其内部的ROM提供一种IPL码,此码在计算机启动过程中将闪存文件系统软件装入PC内存。他在PC的扩展BIOS中安排了8kB以上的存储区域,其地址为0C000H~0EFFFH。计算机开机自检后
6、,DiskOnChip作为PC的BIOS标准操作的一部分,BIOS搜寻ROM扩展码,找到后BIOS执行闪存磁盘内的初始化码,此码将闪存文件系统软件装入内存。闪存磁盘也将被安装为系统的一个磁盘,然后将传输器控制回到BIOS码。当操作系统要确认适合系统的磁盘时,闪存磁盘软件即模仿一个硬盘做出反应。3 TrueFFS与Linux的文件系统TrueFFS是M-system公司开发出来的专用于电子盘设备的专利技术。TrueFFS是Tornadoll开发环境中的一个集成的快速闪存文件系统,通过TrueFFS对DOC块设备的磁盘
7、仿真功能,从而方便了嵌入式Linux系统对电子盘的读写、分区、格式化等一系列操作。通过对操作系统的I/O控制调用。Linux可以通过VFS访问TureFFS的外部接口。Linux文件系统最优秀的地方是对多种文件系统的支持(这里的上层结构是指VFS系统和具体的文件系统,即除buffer管理系统以外的部分)。为了实现这种特色,就必须有一个抽象的层次来统一描述各种文件系统,Linux中就用VFS来实现了这个抽象层;同时,各种具体的文件系统又必须有一个和VFS交互的手段,如图2所示。Linux文件系统管理的最上层模块是文件
8、系统。系统启动时,必须先装入“根”文件系统,然后根据/etc/fstab中的指定,逐个建立文件系统。此外,用户也可以通过mount,umount操作,随时安装或卸载文件系统。Linux系统调用操作系统的GetDriveHandle()函数得到驱动器的句柄,他的返回值是一个能够供I/O控制函数调用的TrueFFS驱动的描述符。然后再调用操作系统中文件系统的IO
此文档下载收益归作者所有