有的网络协议和网络接口都可以在Linux上找到。 6。Linux大小和功能可定制。Linux继承了Unix的优秀设计思想,内核与用户界 面完全独立,各部分的可定制性很强,可以按照需求进行定制和配置,这对于硬件资 源有限的嵌入式系统是一个理想的选择。 1.3研究意义 从国家战略目标与产业发展来看,嵌入式软件特别是嵌入式操作系统是实现传统 制造业转型与提升的关键技术,它对整体提升我国制造业的竞争能力、大幅度地增强 我国软件自主创新能力意义重大。但是我国当前嵌入式系统研究和开发的整体水平不 高,与国际领先水平还有较大的差距,国内的嵌入式设备生产商大多数还是采用国外 的商用嵌入式操作系统。而免费开源的Linux在嵌入式领域的发展为我国发展自己的 嵌入式操作系统,扭转PC机软件市场的被动局面提供了难得的机遇,也为振兴国内软 件行业找到了最佳的突破口。设备驱动程序在Limix内核中扮演着特殊的角色,它是 进入Linux内核世界的大门。对嵌入式Linux设备驱动的研究,有助于深入理解嵌入式 Limix内核代码。此外,硬件必须有配套的驱动程序才能正常工作,由于嵌入式设备种 类繁多的特点决定了不同的嵌入式产品在开发时都必须设计自己的设备驱动程序,使 得设备驱动程序的开发在整个嵌入式系统开发工作中占有举足轻重的地位。因此,对 嵌入式Linux设备驱动的研究是一个很好的课题,具有重要的社会和商业价值。 1.4结构 全文共分五章,具体内容如下: 第1章:绪论。概述了本论文的背景,目前的现状与发展前景,介绍了主要的研 究工作。 第2章:Linux设备驱动程序。本章主要介绍了嵌入式Linux设备驱动程序的特点、 分类、层次架构和主要功能,并对嵌入式Linux设备驱动程序的具体开发过程进行了 描述。并简单描述了本文所使用的开办板平台。 第3章:嵌入式Linux系统移植。主要讲述了嵌入式驱动开发的软件平台搭建的 整个过程。 第4章:字符设备驱动程序设计。本章主要介绍了字符设备驱动的设计方法与具 体的操作步骤,并以触摸屏驱动为例进行演示。 第5章:Linux网络设备驱动设计。主要介绍了网络设备驱动的设计方法,并以 CS890O网卡为例详述了网络设备的设计与实现。 第2章Linux设备驱动程序 2.1设备的分类及特点 嵌入式系统主要有CPU、存储器和外设组成。随着1C制造工艺的发展,目前芯片 集成度越来越高,往往在CPU内部就集成了存储器和外设适配器。ARM、PowerPC、M工PS 等处理器都集成了UART、工℃控制器、USB控制器、SDRAM控制器等,有的处理器还集 成了片内RAM和Flash。 驱动针对的对象是存储器和外设(包括CPU内部集成的存储器与外设),而不是针 对CPU核。Linux将存储器和外设分为三个基础大类,字符设备、块设备和网络设备。 字符设备指那些必须以串行顺序依次进行访问的设备,如触摸屏、鼠标等。块设 备可以用任意顺序进行访问,以块为单位进行操作,如键盘、USB设备等。字符设备不 经过系统的快速缓冲,而块设备要经过系统的快速缓冲。但是字符设备和块设备并没 有明显的界限,如Flash设备符合块设备的特点,但是一般情况下依然把它作为一个 字符设备来访问。 字符设备和块设备的驱动程序设计有很大的差异,但是对用户而言,他们都使用 文件系统的操作接口open()、close()、read()、write()等函数进行访问。 在Linux系统中,网络设备是面向数据包的接收和发送而设计,它并不对应于文 件系统的节点。内核与网络设备的通信和内核与字符设备、块设备的通信方式完全不 同。 2.2设备驱动程序概念 设备驱动程序是有内核中的相关例程和数据组成的I/O设备软件接口,每当内核 意识到要对某个设备今次那个特殊的操作是,它就调用相应的驱动例程,当驱动例程 完成后,就返回至用户进程。 设备驱动程序是操作系统内核、硬件之间的接口。设备驱动程序为应用程序忽略 了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象 操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它文成以下 功能I6]: (l)对设备初始化和释放。 (2)把数据从内核传送到硬件和从硬件读取数据。 |