基于ARM9平台下IDE驱动程序设计
作者单位:大连海事大学
学位级别:硕士
导师姓名:滕国库
授予年度:2008年
学科分类:08[工学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:本课题实现在嵌入式Linux下IDE硬盘的驱动,实现对IDE硬盘的管理。在此基础之上,实现简易的FAT16文件系统,满足一般的读写操作要求;充分利用Linux资源,完成了在ARM9嵌入式平台上IDE驱动的移植,并结合实际的需要,把FAT16文件系统加载到Linux系统中,主要完成以下的工作: 1.硬件平台相关操作。主要包括S3C2410简略介绍和硬件平台的选择、宿主机软件环境的建立、宿主机和目标机之间通信的实现、以及在目标机中VIVI、内核以及文件系统编译和烧写,以及把可执行文件下载到目标机的过程。 2.完善硬件平台。根据原理图搭建硬件平台,连接好线路,分析并处理由于电压不匹配所导致的在实验中遇到的问题,包括具体芯片的选择和引脚的连接,通过设计专门隔离电路,提高总线的抗干扰能力。 3.编写IDE的底层驱动。综合分析比较IDE硬盘和ARM板接口,定义在ARM板上各个寄存器的地址,编写底层的访问控制函数,实现对硬盘的读/写控制,为更上层的调用提供接口。 4.设计FAT16文件系统。根据系统需要,设计并实现了简化的FAT16文件系统。包括主引导区的设置、FAT表操作、FDT表操作及简化的文件/目录操作,写出部分重要操作的流程图。 5.移植Linux下的IDE驱动程序,介绍其详细过程。 ***驱动加载的实现。在底层驱动的基础之上,把驱动程序模块化,并以手动加载“插入到内核中。分析了几个重要的数据结构,详细介绍了驱动加载的原理和过程,包括块设备的注册、blockeviceperations数据结构中几个重要函数的编写过程、Makefile文件的编写以及手动加载实现。 7.分析和总结了实现过程中遇到的问题以及导致此问题的原因,并找出其解决方法;对没有完善的地方,指出其中不足,这是将来要完善的地方。