收藏 分销(赏)

基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc

上传人:可**** 文档编号:4224673 上传时间:2024-08-26 格式:DOC 页数:27 大小:130.50KB
下载 相关 举报
基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc_第1页
第1页 / 共27页
基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc_第2页
第2页 / 共27页
基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc_第3页
第3页 / 共27页
基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc_第4页
第4页 / 共27页
基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发兰州理工硕士论文I目录摘要.IAbstract.II插图索引.III第1章绪论.11.1嵌入式系统意义.11.2嵌入式系统.21.2.1嵌入式系统简介.21.2.2嵌入式系统国内外现状.31.3 ARM9平台.41.4设备驱动.51.5本文主要工作.5第2章 实验平台硬件分析.72.1平台总体结构分析.72.2处理器性能分析.82.3存储器电路分析.102.4电源和复位电路分析.112.5接口电路.112.5.1 USB接口.112.5.2 LCD接口.122.5.3网络接口电路.122.6本章小结.13第3章 嵌入式Linux系统构建

2、.143.1搭建交叉开发环境.143.1.1交叉编译环境的搭建.143.1.2交叉调试环境.163.2 Uboot的移植.183.2.1 Nand Flash启动U-BOOT的基本原理.203.2.2加入支持Nand Flash启动代码.203.2.3 U-BOOT对Nand Flash命令的支持.213.3嵌入式Linux2.6.29内核移植.213.3.1 Linux内核文件结构.213.3.2内核移植过程.243. 根文件系统的制作.263.1建立根文件系统.273.2制作YAFFS2文件系统.283.本章小结.29第4章设备驱动.304.1设备驱动简介.304.2 LCD设备驱动设计.

3、314.2.1帧缓冲设备结构.314.2帧缓冲驱动的编写.334.3 USB设备驱动设计.344.3.1 USB的具体构成.344.3.2 USB驱动程序结构分析.364.4网络驱动设计.444.4.1 DM9000结构分析.444.4.2 Dm9000驱动移植过程.444.4.3 Dm9000驱动简要分析.464.5本章小结.48总结与展望.491工作总结.492展望.49参考文献.50致谢.53附录A攻读硕士学位期间发表论文.54I摘要随着各种处理器性能的不断提高以及价格的不断下降,带有操作系统的嵌入式系统因其体积小,可靠性高、功能强、灵活方便等诸多优点,已渗透到工业、农业、教育、国防、科

4、研及日常生活等各个领域。而Linux系统因为开源、功能多样、性能稳定等特点成为了嵌入式系统的首选。而嵌入式设备种类繁多,性能各异的特点又增加了产品中关于驱动设计的复杂性。因此在嵌入式系统的开发过程中驱动设计的地位举足轻重。本文介绍了Linux的发展情况和体系结构,并在此基础上阐述了Linux作为嵌入式系统开发的优势和不足。在具体实践的过程中结合S3C2440处理器和Mini2440实验平台,进行了嵌入式Linux的移植和驱动设备的开发。在嵌入式Linux的移植过程中:首先结合Linux系统和实验平台的硬件要求搭建了交叉开发环境,在此过程中解决了选用软件之间版本不兼容的问题。其次通过对开源的Ub

5、oot作出一定的修改,生成了合适的系统引导程序,用于完成了Linux系统移植的前序步骤,这里主要解决了NandFlash在启动过程中的数据搬移问题。再次进行了Linux内核的裁剪和移植,并在移植成功的前提下进行了USB设备、LCD设备、网络设备的驱动设计。针对常见的嵌入式设备,主要遇到了以下的问题。诸如:(1)在USB设备中嵌入式Linux系统的发展现状、体系结构特点(2)实验平台的硬件特性简介,包括USB电路、LCD电路结构等等(3)嵌入式Linux的开发。这包括交叉编译环境搭建的过程、Uboot的结构和移植过程、Linux内核的分析以及相关的裁剪移植、yaffs根文件系统的制作(4)介绍了

6、常用设备的驱动的结构和实现过程。包括USB设备、LCD设备以及网络设备经过以上的工作,本文为嵌入式Linux系统和设备驱动的开发给出了较为完整的流程,对其他开发者来说有一定的参考。关键词:嵌入式Linux系统;交叉编译;Uboot;Linux内核移植;基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发IIAbstractWith continuous improving performance and declining prices of processors,because of small size,high reliability,strong function,flexibi

7、lity,and many otheradvantages,the embedded systems has been widely used into industry,agriculture,education,national defense,scientific research,daily life and other fields.The Linuxsystem has so many adventages such as the open source,versatile,stable performance,so it becomes the first choice of t

8、he embedded systems.The wide types and differentperformances of embedded devices add to the complexity of the design on the drive.Therefore,the development of device driver holds an important position in theembedded system design.This article describes the development and architecture of Linux,and r

9、epresentsadvantages and disadvantages of Linux as an embedded system.In practice,combiningS3C2440 processor and Mini2440 experimental platform,the embedded Linux is portedand device drivers are developed.In the process of embedded Linux porting,firstlybuild cross development environment based on emb

10、edded Linux system andexperimental platform,and solve the problem of compatible versions among softwares.Secondly,generate the appropriate system boot procedures by revising open-sourceUboot to complete the pre-order steps of Linux system porting,which mainly solve dataporting problems in the proces

11、s of NandFlash starting.Finally,after Linux kernelcutting and transplantation,design USB devices,LCD devices and network devicesbefore successful porting.This paper is structured into four parts:(1)The developing status and structures of embedded Linux system in USB devices.(2)Introduce hardware fea

12、tures of the USB circuit,LCD circuit,etc.(3)Develop embedded Linux.This includes the process of cross-compile compilingenvironment,Uboot structure and porting process,Linux kernel analysis and relatedcutting port,the production of yaffs root file system.(4)Describe driver architecture and implementa

13、tion process of the common device,including USB devices,LCD devices and network devices.After the above work,this article not only offers a complete process for embeddedLinux system design and device driver development,but also provides a reference forother developers.Keywords:Embedded systems;Cross

14、 compiler;Uboot;Linux kernel porting;兰州理工硕士论文III插图索引图2.1开发板电路结构.7图2.2结构框图.8图2.3内存结构图.9图2.4 SDRAM结构图.10图2.5 NandFlash电路图.10图2.6电源电路.11图2.7复位电路.11图2.8 USB电路图.12图2.9 LCD电路图.12图2.10网络芯片图.13图3.1交叉编译图.15图3.2调试原理图.16图3.3 minicom配置图.17图3.4硬件调试图.18图3.5 Uboot结构图.19图3.6启动原理图.20图3.7 Uboot的烧写.21图3.8内核结构图.23图3.9内

15、核裁剪图.26图3.10文件系统配置图.29图4.1驱动原理图.31图4.2 USB结构图.35图4.3驱动流程图.37图4.4 USB挂载图.43图4.5 DM9000结构框图.44图4.6目标板IP配置图.46图4.7网络连接测试图.461第1章绪论1.1嵌入式系统意义在信息技术和网络技术日新月异的今天,嵌入式系统因结构小巧、稳定性高、灵活方便等诸多优点,在工农业、国防科研及日常生活得到了广泛的应用,并对各个行业的技术升级、产品性能提升、生产效率提高起到了重要的推动作用1。嵌入式产品有着广泛的应用,包括了我们周围诸如机顶盒、个人数字助理、移动及多媒体设备、医疗仪器等多种设备。同时,Linu

16、x操作系统因其开放源代码、易于开发、功能强大、稳定、成本低等优势迅速跻身于主流嵌入式开发平台。在计算机发展过程中,UNIX操作系统的出现是一个重要的里程碑,曾免费供美国及一些西方国家的大学和科研机构使用,并提供源码。后来Linux Torbald在Unix的基础上进行了该进,创造了一个以其名字命名的操作系统-Linux,与商业操作系统不同是,Linux是一个开源免费的操作系统。对于Linux在嵌入式系统中的应用,都是根据各种系统的多样性,对内核进行一定的裁剪和修改,而不是生搬硬套。具体包括以下方面:(1)在Linux的移植过程中,特别是移植到具体的处理器中时,因为不同的处理器有着不用的指令系统

17、和结构系统,所以需要做出相应的修改和补充。(2)在满足系统性能的前提下,为了压缩内核的大小以及提高系统的启动速度,需要对Linux内核进行删减和裁剪。(3)嵌入式系统因根据用户的需求定制,导致了外部设备不能像一般设备那样通用,而这就需要有针对性的开发一些特别的设备驱动程序,以满足不同外设的需要。(4)不同的应用领域导致了对于实时性要求的高低不同,而这就需要采取不同的对策,解决诸如优先级调度、时钟精度、优先级反转等各种复杂的问题以实现相应的实时性要求2-4。模块化是Linux内核的特色,内核的许多功能和结构都可以按照需求加以取舍和裁剪,有些结构根据系统启动加载的需求,比如部分模块在启动时需要较长

18、,并且又不是频繁需要使用。这个时候就可以将其独立编译生成动态安装的模块,在系统需要的时候再安装运行。嵌入式Linux经修改和扩充可以保留这个特点,当嵌入式系统的需求改变的时候,还可以根据这个修补过的版本,再次进行裁剪和编译以生成许多不同的可执行镜像,满足嵌入式系统不同的功能需求,更好更快的完成项目要求。21.2嵌入式系统1.2.1嵌入式系统简介嵌入式系统一般定义为:以应用为中心,以计算机技术为基础、软硬件可裁剪、适应于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统5。以嵌入式Linux系统为例,一般具有一下的应用特征。内核体积较小:在Linux系统中性能齐全的内核大概占用1

19、MB的内存空间,而包含虚拟内存和内核核心功能的微内核,在奔腾处理中只占用大概100KB的空间。而一个包含网络以及可以在386处理器执行简单实用程序的Linux系统,仅仅只需要大概500KB的内存。同时具有上述功能的微内核的结构也并不复杂,内核的高层是以模块化的组织形式存在的,这些包括网络以及文件系统等等,而驱动程序和其他部件作为微内核的底层在运行时可作为动态模块临时编译或者添加到内核中去。这可以根据嵌入式系统定制需求的多样性,提供高度模块化的构造方法。可靠性和稳定性:嵌入式系统要求很高的可靠性和稳定性,而Linux在通用操作系统领域中的优异表现已证明其性能是绝对可靠的,因此选用Linux作为嵌

20、入式操作系统,对于提升系统整体可靠性和稳定性来说是很有保障性的。多任务和实时性:多任务性和实时性是嵌入式系统的特色,而这方面Linux也具有一定的优势,其在多任务方面性能优良。Linux进程有三种调度策略,即非实时、实时FIFO和实时基于优先权轮询法。虽然实时性不出众,但一般的要求基本都能达到。可裁剪性和定制性:这是嵌入式操作系统一般要求,虽然Linux是单内核结构,但它具有特色鲜明的模块机制。模块不仅具有可裁剪性,还可以在系统中动态的加载和卸载,这使得模块化成为了Linux的特征之一。除了模块化机制以外,Linux内核可以根据需求在源码级别上进行配置和选择。因此Linux可以根据实际的情况,

21、经过一定的裁剪和配置以满足嵌入式系统的实际应用需求。完善的网络功能:嵌入式系统要求具有完善的网络功能,而Linux自身就是一个优秀的网络操作系统,几乎所有的网络协议和网络接口都已经定制在Linux中,而且具有很高的执行效率和吞吐量。硬件平台的普适性:Linux具有广泛的硬件支持特性,不仅涵盖了RISC和CISC,还包括了32位和64位等多种处理器。Linux常用于的微处理器是Intel x86芯片家族,但它同样能在Motorola公司的68KB系列CPU和IBM、Apple、PowerPC,以及Strong ARM等处理器系统中运行,这意味着嵌入式Linux将具有更广泛的应用背景。Linux支

22、持大量周边硬件设备,其上有丰富的驱动程序,支持各种非主流硬件设备和最新的硬件技术,而且当前许多厂商也直接提供Linux上的驱动,并且全球的Linux爱好者也编写了大量的驱动程序,使Linux更适合于各种不同的硬件平台6-8。目前,嵌入式Linux系统开发如雨后春笋,已经开辟了很大的市场空间,除了一些耳熟能详Linux公司,像RedHat、VALinux等已经从事了多年的嵌入式Linux开发之外,不少新公司(像Lineo、Time Sys等)和大公司(如IBM、SGI、Intel等),以及一些以前针对专用嵌入式系统的公司也在从事嵌入式Linux的应用和开发。嵌入式Linux主要可以分为两类(1)

23、在不删减Linux完整功能的前提下,针对实际应用中对嵌入式系统体积的严格要求,使其尽量的减小。如Clinux。(2)在一些对于实时性要求较高的控制场合,特别是硬实时系统中有针对性的将Linux开发成实时系统。如RT Linux,Hard Hat Linux等9。1.2.2嵌入式系统国内外现状Lineo公司的代表作Clinux已经成为开源嵌入式Linux的一个经典。在Linux内核还是2.0的时候,Clinux就产生了。其主要在不具有内存管理单元(MMU)的处理器上使用。根据嵌入式系统对内核体积的要求,Clinux裁剪了大量Linux代码,尽管如此其仍然具有Linux操作系统的出色功能,具有代表

24、性的是稳定、可靠的网络功能和完善的文件系统。RT Linux(Real Time Linux)由Victor Yodaiken和Michael Baranov开发出的全球范围内较早的实时Linux系统。现在RT Linux应用特别广泛,这其中既包括宇航工业中的数据采集、遥感测控等高精端应用,也包括电影特效处理等等RT Linux保留了Linux内核的绝大部分内容,同时利用内核的模块化机制,采用模块导入和独立内核管理实时任务的方案。其工作流程是这样的:在启动了Linux内核之后,内核本身转化为一个优先级最低的空闲任务,当有实时任务要求处理时,这个实时任务的优先级是高于内核的,所以能被系统快速的响

25、应,即在实时任务存在的基础上响应实时任务。RT Linux将内核机制分为非实时机制以及实时机制两个部分,这有利于每个机制独立优化,并且这样的内核结构简单而且体积小巧。Monta Vista Linux公司是全球知名的嵌入式Linux系统解决方案提供商之一,其提供的方案是针对体积小、可靠性高、响应快以及非台式Linux能解决的问题。Monta Vista Linux公司的Hard Hat Linux(2.1版本已更名为MontaVista Linux)是专门针对嵌入的系统的。MontaVista Linux可以为系统启动和运行环境制定的合适的硬件配置,这样可以获得高效的性能和可接受的体积。与国外

26、相比,国内从事嵌入式技术起步比较晚,没有自己生产嵌入式芯片的能基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发力,在嵌入式操作系统方面有自主知识产权的产品也很少,在这方面,源代码开放的Linux已经逐渐成为国内公司与国外厂商争一日之长的有力武器。国内许多公司也在做嵌入式Linux的开发,有以下几种产品:PocketIX OS:PocketIX OS是由广州博利思公司推出的嵌入式Linux产品。这个系统在2.2.13内核的基础上进行了改善,保留了x窗口、浏览器以及文件管理和文字处理功能,并且具有体积小巧、运行速度快的特点。该系统在网络终端、Pocket PC、个人数字助理、电视机机顶盒

27、、车载导航、智能家电等方面有不错的表现。CC-Linux:CC-Linux是由中科院软件所、国防科技大学、西北工业大学等和几家具有雄厚研发能力的公司共同完成。包括嵌入式Linux内核、嵌入式图形环境CSGUI、嵌入式配置工具和开发环境SDK/ETK、系统应用软件等子系统。CC-Linux为高效可用的面向Internet应用设备的嵌入式Linux操作系统,目标产品为机顶盒和PDA14-18。CC-Linux对通用的Linux进行了合理的裁剪,实现了支持多种文件系统、软实时、电源管理、多平台和多线程支持等特点,这使得该系统实际上已经成为中国嵌入式操作系统的经典之作。此外,在市场上还有红旗嵌入式Li

28、nux、蓝点点嵌入式Linux系统、网虎科技推出的COVENTIVE等。“863计划”重点支持项目中也有使用Linux作为嵌入式操作系统开发的方向。它们所具备的共同特点如下:(1)精简的内核,应用的处理器广泛。这其中包括:x86、StrongARM、ARM、MIPS、Power PC等。(2)提供完善的图形用户接口和图形化界面(3)提供嵌入式浏览器、多媒体播放器、邮件管理、文本编辑软件等应用程序。(4)提供完整的开发工具和SDK,用户可以根据自身的需求,对其提供的开发版本进行一定的修改,以满足不同的需求。嵌入式Linux已经在消费电子设备中得到广泛应用,基于嵌入式Linux的手持设备和智能手机

29、已经具有了很大的市场。1.3 ARM9平台正是因为Linux具有良好的硬件平台普适性,使得其可以方便的移植到ARM处理器上。ARM处理器核已经有6个系列产品:ARM7、ARM9、ARM9E、ARM10E、SecureCore及较新的ARM11系列。进一步的产品来自于合作伙伴,例如:IntelXscale微体系结构和StrongARM产品。ARM7、ARM9、ARM9E和ARM10E是个通用处理器系列。每个系列提供一套特定的性能来满足设计者对功耗、性能和体积的需求。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T这3种类型内核,主要应用于无线设备、仪器仪表、车载设备、机顶盒、智能手机和数字摄影机等。目前市场上得到广泛应用的ARM处理器一般都是使用了ARM7和ARM9内核,后者性能比较突出,主要用于高端设备,而前者价格低廉在工业控制中得到较大的推广。ARM9核对ARM7核的功能进行了显著提高和增强。ARM9和ARM7一样不仅支持Thumb指令,并支持片上调试。而ARM9最主要的

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服