下载  >  开发技术  >  其它  > 论文研究-Linux设备驱动程序的研究与开发 .pdf

论文研究-Linux设备驱动程序的研究与开发 .pdf 评分

Linux设备驱动程序的研究与开发,朱园,朱林,本文介绍简要介绍了Linux 系统中的设备,Linux 下设备驱动程序的基本结构,结合USB驱动程序的具体开发实例,介绍了USB的相关概念,分析Li
山国科技记又在纯 严格意义上讲,就是使用内核定义的这些数据结构、函数来编写数据的处理功能。 USE设备驱动 UB设备亚动 rB设备驱动 API UB内核 Lower APT 主机控制器驱动1 主机控制器驱动2 图内核层 设备驱动程序的实现 驱动程序的注册与注销 驱动程序需要做的第一件事情就是调用 函数在 子系 统里注册,并提供一些相关信息,例如这个驱动程序支持哪和设备,当被支持的设备从系统 插人或拔出时,会有哪些动作。所有这些信息都传送到子系统中。 除了 结构以外,在 中定义了 结构来保存指向可选配置和接口 的指针。描述符中详细描述了一个改备几乎所有的馊件信息,包括厂商、设备、各 种资源等。当一个设备连上总线时 函数将会被自动唤陧,以取 出设备完整的摧述符树结构。当设备插人时、为了使 设备热插拔支持系统自动装载驱动程序,需要创建一个 。代码 如下 终端入口 宏利用厂商和产品为我们提供了一个设备的唯一标识。当系统插人 个匹配的设备到总线时,驱动会在 中注册。驱动稈序中函数也 就会被调用。 结构指针、接口号和接口都会被传递到函数中。驱动程序需要确 认插人的设备是否可以被接受,如果不接受,或者在初始化的过程中发生任何错误, 凼数返回一个值。否则返回一个指向驱动程序上下文的指针。通过这个指针,就可以 访问所有结构中的回调函数。在函数执行以后,将调用 函数 为驱动申请更多的接∏。当个设备从系统拔掉以后 函数就会自动调用。而 要注销设备需要调用 函数。 日注册,驱动就已经和设备绑定上了,任何用户态程序要操作此设备都可以通过 结构所定义的函数进行了 是中的子系统向内核中的其 他部分提供了一个统一的标准设备接口,当应用程序对设备文件进行诸如 山国科技记又在线 等操作时,内核将通过 结构访问驱动程序提供的涵数。 结构中的指针即是指向该文件操作集 设备的打开与释放 打开设备是通过调用 结构中的涵数来完成的,它是驱动程序用来为 今后的操作完成初始化准备工作的。在函数中 宏是一个关 键,它的作用是起到一个计数的作用,有一个用户态程序打开一个设备,计数器就加一,例 如,我们以模块方式加人一个驱动,若计数器不为零,就说明仍然有用户稈序在使用此驱动, 这时候,就不能通过命令卸载驱动模块了 增加该模块的使用计数 在文件的私用结构中存储对象 在使用完设备后,必须关闭设备驱动程序。对用户米说,只要在用户程序中使用 函数,用户程序就会自动调用 结构中的函数。要注意的问题是设备可 以在仟何时间点从系统中取走,即使程序目前正在访问它。因此驱动稈序必须要能够很 好地处理解决此问题,它需要能够切断任何岀前的读写,同时通知用户空间程序设备已 经被取走。如果程序有一个打开的设备句柄,在当前结构里,我们只要把它赋值为空,就像 它凵经消失了。对于每一次设备读写等其它函数操作,我们都要检查 结构是否存 在。如果不存在,就衣明设各已经消失,并返回个 错误给用户程序。当最终 我们调用 没有文件打开这个设备时,无论 结构是否存在、它都会清空 函数所作工作。 设备数据的传输 当完设备后,就可以由 结构中的和数进行读、写数据了 子系统中用一个称为 的数据结构来封装的传输。这个 结构包括了建立任何种传输类型的变量。所有的传输请求向内核传输,请求结束 通过个 功能进行标志。在 中,一个 函数,就完成了 系统和我们自己的 之间的联系。注意 是中断方式,所以要注意时间不能太久,它只是报告一些的状态等 函数与函数稍有不同在于程序并没有用将数据从设备传送到驱动程序,而 是我们用 函数代替,这个函数能够不需要创建和操作.数的情况下,来 发送数据给设备,或者从设备来接收数据。我们调用 函数并传提一个存储空间, 用来缓冲和放置驱动收到的数据,若没有收到数据,就失败并返回一个错误信息 函数当对设备进行次读或者写时是非常有用的然而,当需要连续地对设备 进行读写时,仍需要健立个自己的,同吋将提交给了系统。 设备驱动程序模块 把驱动程序载入内核的方法有两种:静态编和动态加载。在进行静态编详时,驱动 程序是和内核一起编译的,如果要修改驱动程序,将要重新编详和下载内核;动态编译即是 把驱动程序编译成可以动态加载的模块,系统通过调用和可随时将用户廾发的 山国科技记又在纯 驱动程序进行加载和卸载。 如果进行静态编译,即将驱动稈序编译进内核的话,会增加内核的人小,还要改动内核 部的源文件,而且不能动态地卸载,不利于调试。从本质上来讲,模块也是内核的一部分, 它不同于普通的应用程序,不能调用位于用户态下的或者库函数,而只能调用 内核提供的函数。在以模块方式编与驱动程序时,要实现两个必不可少的函数 和 ,而且至少要包含 和 两个头文件。在 用编译内核模块时需要加上 这几个参数,编译生成的 模块一般为文件可以使用命令载人内核,从而成为内核的一个组成部分,此 时内核会调用模块中的函数 。当不需要该模块时,可以使用 命令进行卸 载,此进内核会调用模块中的函数 。仟何时候都可以使用命令来查看 目前已经加载的模块以及正在使用该模块的用户数 结论 作为新一代的外围设备总线接口标准具有使用方便、支持热插拔、易于扩展、传 输速度快等众多优点而作为一种蓬勃发展的开源操作系统其应用日益广泛对下 设备驱动程序的需求将越来越多 参考文献 王成儒,李英伟 原理与工程开发北京国防工业出版社 陈莉君深入分析内核北京人民电出版社 周魏松 系统分析与高级编程技术北京人民邮电出版社 设备驱动程序 北京屮国电力出版社, 美 系统体系北京屮国电力出版社

...展开详情
所需积分/C币:5 上传时间:2019-08-15 资源大小:274KB
举报 举报 收藏 收藏
分享 分享
论文研究-Linux下临界区检测算法研究 .pdf

Linux下临界区检测算法研究,王传瑞,肖涛,在Linux运行环境下,为了保证实时任务的截止期,一种新的临界区检测调度算法被提出,该算法通过实时任务的可调度性判断,重新安排�

立即下载
论文研究-Linux帧缓冲设备驱动原理和测试 .pdf

Linux帧缓冲设备驱动原理和测试,刘冬,,本文介绍了Linux内核的帧缓冲驱动原理,分析了帧缓冲驱动的基本数据结构和基本函数。数据结构的作用在于存放与显示设备相关的参数�

立即下载
论文研究-Linux下内核态-用户态高效易用的数据交互方法研究 .pdf

Linux下内核态-用户态高效易用的数据交互方法研究,徐明昆, 胡勇刚,Linux操作系统是一款单内核操作系统,它将各子系统包含在内核中,并为所有进程提供服务。为了保护子系统的安全,Linux将进程空间划分为��

立即下载
论文研究-Linux下的PCIE设备驱动设计与实现 .pdf

Linux下的PCIE设备驱动设计与实现,王学东,崔琪楣,以高效性和灵活性而著称的linux开源操作系统正在获得更多人的青睐,它对外设类型的广泛支持使得其驱动程序的开发成为了一个热点讨�

立即下载
论文研究-基于ARM-Linux的Qt/Embedded的研究与实现 .pdf

基于ARM-Linux的Qt/Embedded的研究与实现,郑阳吉,,本文研究了Qt的特点、发展历程等,在此基础上以一个简单的实例阐述了Qt的开发过程。研究了Qt在嵌入式领域的工具Qt/Embedded,包括硬件�

立即下载
论文研究-基于ARM-Linux的Web服务器的设计与实现 .pdf

基于ARM-Linux的Web服务器的设计与实现,戴帅,王虹,随着嵌入式技术的发展和后PC时代的到来,嵌入式系统被越来越广泛地应用到各个领域中。同时,信息技术的迅速发展也使得嵌入式设备�

立即下载
论文研究-ARM linux启动过程分析 .pdf

ARM linux启动过程分析,姚成强,孙文生,嵌入式Linux的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文��

立即下载
论文研究-基于Linux的IPv6网络的组建 .pdf

基于Linux的IPv6网络的组建,马坤,,IPv6是被设计用来取代IPv4协议的下一代网络协议,它的许多新特性被人们所应用。本文讲述了将已有的IPv4网络平滑地过渡到IPv6网络,使��

立即下载
论文研究-基于Linux_Qt的嵌入式视频采集 .pdf

基于Linux_Qt的嵌入式视频采集,郑杜鹃,黄晓放,随着我国科技和经济的飞速发展,视频监控系统的应用越来越广泛。本文以 Micro2440微处理器芯片为核心的ARM9为操作平台,利用QT实现视��

立即下载
论文研究-嵌入式Linux下CAN总线驱动程序设计 .pdf

嵌入式Linux下CAN总线驱动程序设计,宋扩东,卢珞先,以基于ARM9核心的S3C2410微处理器与CAN总线控制器MCP2515为例,讨论了嵌入式Linux操作系统下的设备驱动程序开发。在构建好硬件系统的基础�

立即下载
论文研究-基于嵌入式LINUX实现视频采集 .pdf

基于嵌入式LINUX实现视频采集,刘彦兰,,本文设计了嵌入式远程监控系统中的视频采集端。提出了基于ARM Linux的视频采集编码设计方案,采用S3C2440作为主处理器,选用OV511 OV7650��

立即下载
论文研究-嵌入式Linux下高精度定时器的实现 .pdf

嵌入式Linux下高精度定时器的实现,范异君,,嵌入式Linux开发过程中经常遇到需要设定大量定时器的情况,随着嵌入式技术的发展,嵌入式Linux应用场合也越来越广,在定时的精度以��

立即下载
论文研究-基于嵌入式Linux的IPMI驱动程序设计 .pdf

基于嵌入式Linux的IPMI驱动程序设计,丁四华,张志政,针对Linux内核下通用IPMI协议实现部分过于复杂、繁琐、占用过多内存资源,不利于某些简单嵌入式应用场合的不足,提出了通过在FPGA逻��

立即下载
论文研究-基于U-BOOT的WinCE与Linux双启动的设计和实现 .pdf

基于U-BOOT的WinCE与Linux双启动的设计和实现,邓小武,李森林,启动装载程序是嵌入式系统的重要组成部分。本文结合在ARM平台上广泛使用的U-Boot,详细讨论了Bootloader开发中用到的主要技术,分析引��

立即下载
论文研究-Linux下GSI代理实现 .pdf

Linux下GSI代理实现,尹影影,肖宜,网格安全是网格技术的核心问题。目前有很多业界人士研究网格安全中的关键技术——用户代理。本文在Linux操作系统(Redhat9.0)下,采�

立即下载
论文研究-Linux内核配置系统分析 .pdf

Linux内核配置系统分析,张官兴,,Linux作为一款优秀的开源操作系统被广泛的应用到各个领域,同时也吸引了越来越多的操作系统爱好者。但是,由于操作系统本身的规模�

立即下载
论文研究-Linux千兆网卡驱动的设计 .pdf

Linux千兆网卡驱动的设计,易正利,刘元安,随着Internet和通信技术的飞速发展,网络带宽增长速度迅猛,这对计算机接入高速网络的网络接口提出了越来越高的要求。本文旨在针对�

立即下载
论文研究-基于PowerPC处理器MPC8541E的嵌入式Linux系统开发 .pdf

基于PowerPC处理器MPC8541E的嵌入式Linux系统开发,方先康,,介绍了嵌入式PowerPC 处理器芯片MPC8541E 的主要特征。着重阐述了如何在PowerPC 处理器(以MPC8541E 为例)上开发嵌入式Linux 系统,主要包括��

立即下载
论文研究-Linux系统上AODV协议实现的分析 .pdf

Linux系统上AODV协议实现的分析,齐朝霞,,无线Ad hoc 网络是一种不需要基础设施的自组织和自管理网络,网络中所有的节点同时具有终端和路由器的功能。因此无线自组网的一个重�

立即下载
论文研究-LINUX操作系统在ARM9上的移植研究与实现 .pdf

LINUX操作系统在ARM9上的移植研究与实现,刘欣,,嵌入式系统中,在操作系统的基础上编写应用软件可以使开发人员缩短开发周期,降低开发成本,提高开发效率。本文讨论了基于ARM9的��

立即下载