基于ARM9的Linux内核移植和USB驱动开发
基于ARM9的Linux内核移植和USB驱动开发(任务书,毕业论文,21000字,程序)
摘 要
随着现代计算机技术和互联网的飞速发展,嵌入式系统成为当前IT行业最热门的焦点之一。而ARM以其高性能低功耗的特性成为目前应用最广泛的32位嵌入式处理器,嵌入式Linux也凭借其功能强大、免费以及开发资源丰富等优势占据了嵌入式操作系统的主导地位。
以Linux为OS的嵌入式系统已大量普及,在上面开发USB驱动的需求也越来越大。本次毕业设计研究了版本为2.6.32.2的Linux内核,包括交叉开发环境的建立、内核的移植与配置、根文件系统的建立以及基于定制的Linux操作系统平台的特定USB鼠标驱动程序的编写。
在Linux操作系统中,内核通过调用驱动中的标准接口将应用程序中对设备的操作映射到具体的硬件设备,根据S3C2440处理器内置USB设备控制器的功能属性,在驱动中采用了中断的传输方式,通过URB的方式实现对设备的读写操作。
关键词:ARM,嵌入式Linux,Bootloader,USB接口,S3C2440处理器
ABSTRACT
With the rapid development of modern computer technology and Internet techniques, the embedded system becomes one of the attention focus in IT industry. Nowadays, ARM with 32-bit embedded processor becomes the most widely applied for its extraordinary performance and low power consumption. The Embedded Linux also will take the dominant place of embedded operation system because of its strong feature , free using and abundant resource.
[来源:http://www.doc163.com]
Embedded system based on Linux are more popular now , and they need more USB drivers . My thesis is based on Linux kernel 2.6.32.2. Including the establishment of cross compile enviroment , Linux kernel’s configuration and reducing, making root file system and USB mouse driver design based on my Linux kernel platform.
Linux kernel map application programs which want to operate device to specific hardware by calling standard interface . According to S3C2440 processor’s usb device controller , usb mouse driver can transport data by interrupt and using URB to achieve device’s read and write.
Keywords:ARM,The Embedded Linux,Bootloader,USB Interface ,S3C2440 processor
Linux操作系统以其自身诸多优点在嵌入式应用领域得到广泛的应用,硬件设备在该系统下的驱动开发也在整个系统的开发中占据重要的位置。本次毕业设计在基于ARM920T核的S3C2440处理器为核心的Mini2440平台上成功构建了Linux系统,研究了在其平台下的USB鼠标驱动程序开发,认真学习研究了USB协议和Linux系统中驱动程序的设计方法。最后通过动态加载内核模块的形式测试鼠标能够正常工作。较好的完成了本次毕业设计的研究课题。所做的具体工作总结如下: [来源:http://www.doc163.com]
根据嵌入式系统的现状和发展趋势,分析了嵌入式Linux的优势。
通过ARM9体系结构的学习,了解和掌握了ARM处理器内部的功能部件。
建立开发环境。通过在宿主机上配置NFS服务器和安装交叉编译环境,成功实现了交叉开发环境的建立。
着重阐述了如何进行嵌入式Linux的移植和USB驱动程序的开发。嵌入式的移植可以分为几个步骤:交叉编译环境的建立、启动程序的编写、按照需求对内核的裁剪以及根文件。
认真学习了USB驱动开发的相关知识,但鉴于Linux驱动编程与USB协议本身的复杂性,依旧还有许多的不足。
虽然通过此次毕业设计对嵌入式Linux的移植和裁剪进行了一定的学习和研究,但仍然处于一个比较初步的阶段,很多方面需要进一步的探索,这包括:
嵌入式Linux更深入的裁剪分析。虽然面向应用的裁剪方法能够对系统进行更小粒度和跟高精度的裁剪,但这种方法只是代码级别的,所得到的内核并不是最小化的,因为不可能完全删除那些指令级的无用代码,要想获得更高精度的裁剪则需要进行指令级得分析。
实时性研究。在特定情况下的嵌入式Linux系统往往对实时性提出了很高的要求,这就需要对嵌入式Linux的实时性进行深入的研究,以提高嵌入式Linux操作系统的实时性。 [资料来源:http://Doc163.com]