设备驱动程序设计(精选)
LINUX设备驱动程序(4)
协议简介
对于网络的正式介绍一般都采用 OSI (Open Systems Interconnection)模型, 但是Linux 中网络栈的介绍一般分为四层的 Internet 模型。
协议栈层次对比
OSI七层网络模型 应用层 表示层 会话层 传输层 网络层
数据链路层 物理层
Linux TCP/IP 四层概念模型
网络协议
网络协议层用于实现各种具体的网络协议, 如: TCP、UDP 等。
设备无关接口
设备无关接口将协议与各种网络设备驱动连接在一起。 这一层提供一组通用函数供底层网络设备驱动程序使用,让 它们可以对高层协议栈进行操作。
首先,设备驱动程序可能会通过调用 register_netdevice 或 unregister_netdevice 在内核中 进行注册或注销。调用者首先填写 net_device 结构,然后 传递这个结构进行注册。内核调用它的 init 函数(如果定义 了这种函数),然后执行一组健全性检查,并将新设备添加 到设备列表中(内核中的活动设备链表)。
驱动程序
网络栈底部是负责 管理物理网络设备 的设备驱动程序。
第二节 网卡驱动程序设计
设备注册
设备描述:
每个网络接口都由一个 net_device结构来描述
注册: 网络接口驱动的注册方式与字符驱动不同之处在于 它没有主次设备号,并使用如下函数注册。
int register_netdev(struct net_device *dev)
Linux网络子系统架构
Linux协议架构
Linux 网络子系统的顶部是系统调用接口。它为用 户空间的应用程序提供了一种访问内核网络子系统 的方法。位于其下面的是一个协议无关层,它提供 了一种通用方法来使用传输层协议。然后是具体协 议的实现,在 Linux 中包括内嵌的协议 TCP、 UDP,当然还有 IP。然后是设备无关层,它提供了 协议与设备驱动通信的通用接口,最下面是设备驱 动程序。
第8章 嵌入式设备驱动程序设计(新)1
4、设备驱动程序加载与卸载的 工作过程
8.1.4 设备驱动程序的功能接口 函数模块
一个设备驱动程序模块包含有 5个部分的功能接口函数:
• • • • • (1)驱动程序的注册与释放; (2)设备的打开与关闭; (3)设备的读写操作; (4)设备的控件操作; (5)设备的中断或轮询处理。
1、设备驱动程序的注册与释放
4、加载驱动程序
• 使用insmod命令加载驱动程序。 # insmod demo_drv.o
5、卸载驱动程序
• 使用rmmod命令卸载驱动程序。 # rmmod demo_drv
6、编写用户测试程序
【例8-3】编写一个调用设备驱动程 序功能接口的用户程序。
• 源程序见教材, • 将其保存文件为:test_driver.c 。 • 用arm-linux-gcc对在宿主机上测试, 则用gcc编译)。 # arm-linux-gcc –o test_demo_drv test_driver.c
第8章 嵌入式设备驱动程序设计
本章要点
• 1、设备驱动程序基础知识 • 2、设备驱动程序设计
8.1嵌入式设备驱动程序基础
8.1.1
设备驱动程序概述
1、设备文件
• 设备文件分为三类:字符设备文件、 块设备文件和网络接口设备文件。
2、内核空间和用户空间
• 内核主要负责操作系统最基本的内存管理、 进程调度和文件管理以及虚拟内存、需求 加载、TCP/IP网络功能等。 • 内核空间和用户空间分别引用不同的内存 映射,也就是程序代码使用不同的地址空 间。
3、设备驱动程序和用户应用程序
• 设备驱动程序可以理解为操作系统的一部 分,它的作用就是让操作系统能正确识别 和使用设备。
LINUX系统下GPIB驱动优化设计与实现
NJIAJU5+3NI 函 数 来 申 请 中 断& 其 原 型'315NJIAJU5 + 3NI !A1U3Z1JP3153NI&YG3P !EF1PMJN"!3153NI&YG3PPJY+3P& U5NA0565+ NJZUNJZU"&A1U3Z1JPMG1ZXMFZU&0G1U50EFN PJY30J&YG3PPJY+3P"$参数3NI表 示 所 要 申 请 的 硬 件 中 断 号&EF1PMJN为向系统申请 的 中 断 服 务 程 序& 中 断 产 生 时 由
F/0123 字符设备驱动模型分析
;.<=> 字符设备驱动程序 一 ))* 般包括%部分'初始化( 中断服务(设备文件操作%在驱动程序初始化时&要向系 统注册此驱动程序&系统后续才能调用驱动里各设备文件 操作接 口% 在 ;31AB 系 统 里& 是 通 过 调 用 NJZ3U5JN+ 0ENPJY 向系统注册设备驱动程序&初始化部分除了注册设备驱动 程序&一般还需要给驱动程序 申请系统资源&包括内存( 时钟(.,- 端口等&芯片的初始化也在这里进 行&另 外还要
注销掉%对于设备 经 常 会 提 出 请 求 给 S8=& 来 执 行 设 备 需 存器进行正确设置&才能实现对 ?8.@ 的各 种操 作%工作模
要完成的操 作& 这 就 需 要 有 中 断 服 务&驱 动 程 序 通 过 调 用 式可分为单芯片模式和 7ANQG _ ((&+模式&工 作模 式的选
VxWorks下USB设备驱动程序设计
VxWorks下USB设备驱动程序设计作者:王浩来源:《电脑知识与技术·学术交流》2008年第24期摘要:介绍了VxWorks下USB驱动的层次结构,分析了USB设备驱动程序开发的一般方法和关键技术。
在此基础上实现了VxWorks下LM9833设备驱动,达到了预期目标。
所给出的VxWorks下USB设备驱动设计的一般步骤为在VxWorks下开发其它USB设备驱动提供了参考。
关键词:VxWorks;USB设备驱动;管道;回调中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)24-1200-04Design of USB Device Driver Based on Real Time Operation System VxWorksWANG Hao(College of Computer, Xidian University, Xi'an 710071, China)Abstract:The architecture of USB dirver based on VxWorks is given, general method and key technology in developing USB device dirver are analyzed.Then the device driver of LM9833 is implemented, expectant performace of target system is achieved. The general process of developing USB device dirver used in this paper can be refered by others USB device driver developing based on VxWorks.Key words: VxWorks; USB device driver; pipe; callback1 VxWorks下USB驱动概述VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Time Operation System, RTOS)内核。
操作系统课程设计键盘驱动
操作系统课程设计键盘驱动一、实验选题 (1)二、模块整体功能介绍及主要目标 (1)三、头文件的分析 (2)四、数据结构的分析 (2)1、数组tty_table[] (2)2、tty_struct 数据结构 (2)3、tty 等待队列数据结构 (3)4、各个数据结构间的关系图 (3)五、函数的分析 (4)1、采用中断驱动的I / O设备键盘的循环周期 (4)2、键盘中断处理程序 (5)3、ctrl和alt键的处理 (7)4、caps、scroll、num键的处理 (8)5、数字小键盘的处理 (11)6、减号键的处理 (13)7、功能键的处理 (14)8、do_self的处理 (15)9、左,右shift键的处理 (16)六、分析体会及亮点说明 (16)七、参考文献 (20)一、实验选题实验题目是:Linux0.11字符设备驱动中的键盘驱动程序源代码分析,这部分涉及到操作系统的中断、I/O应用接口、I/O子系统等相关知识,程序源代码参考Linux0.11中kernel目录下的keyboard.s文件。
二、模块整体功能介绍及主要目标该模块键盘中断处理程序 keyboard.s 主要用于读入用户键入的字符并放入read_q 缓冲队列中。
其具体实现机制是:当用户在键盘上键入了一个字符时,会引起键盘中断响应(中断请求信号IRQ1,对应中断号INT 33),此时键盘中断处理程序就会从键盘控制器读入对应的键盘扫描码,然后根据使用的键盘扫描码映射表译成相应字符,放入tty 读队列read_q 中。
然后调用中断处理程序的C函数do_tty_interrupt(),它又直接调用行规则函数copy_to_cooked()对该字符进行过滤处理,并放入tty 辅助队列secondary 中,同时把该字符放入tty 写队列write_q 中,并调用写控制台函数con_write()。
此时如果该终端的回显(echo)属性是设置的,则该字符会显示到屏幕上。
PCI设备的WDM驱动程序设计-9052
PCI设备的WDM驱动程序设计柳泉罗耀华柳华伟摘要:本文详细地讨论了利用DDK开发PCI设备的WDM驱动程序的设计原理、方法及在设计中注意事项,实现了以芯片PCI9052开发的PCI卡的具有内存和I/O读写及中断处理的WDM驱动程序。
关键字:PCI,WDM,驱动程序,DDK在Windows操作系统中,为了保证系统的安全性和可移植性,对应用程序对硬件的操作进行了限制,尤其Windows 2000和Windows XP,不支持直接对系统的硬件资源的操作。
因而在设计开发PCI设备时,需要开发相应的驱动程序来实现对PCI设备的操作,用户应用程序通过驱动程序来访问PCI设备。
由于计算机硬件设备都存在不同的特点,因此各种设备的驱动程序也都有自己的特点,比如PCI设备、USB设备等等。
尽管在整体框架中基本相同,但设备功能上不同,因此本文以PCI桥芯片PCI9052开发的PCI卡为硬件设备,来探讨PCI设备的驱动程序的开发。
1.驱动程序类型和开发工具的选择在WINDOWS操作系统下,支持PCI总线及其设备的驱动程序类型有支持Windows 98/95的VxD、支持Windows NT的NT式驱动程序和支持Windows 2000、Windows XP 和Windows 98的WDM(Windows Driver Model)。
前两种驱动程序类型由于其支持的操作系统的逐渐淘汰而淘汰。
现在主流的操作系统是Windows 2000和Windows XP,因此开发PCI设备的驱动程序最好的方案是WDM驱动程序。
在一个系统中开发出WDM 驱动程序,稍加修改即可在其他系统中编译运行。
WDM是在Windows NT驱动程序体系的基础上发展而来的,修改或增加了即插即用、电源管理等功能,使之适应硬件和用户的要求。
开发WDM驱动程序的主要工具是微软为各操作系统提供的开发软件包Device Driver Kits(DDK) ,该软件包为驱动程序开发者提供了用于驱动程序开发的资源文件、编译连接程序、开发技术文档等。
aARMLINUX平台的USB采集卡设备驱动程序的设计
2 S U B设备类驱动中虚拟文件系统的使用
UB S硬件接口(H I O C控制器、 H 胜 制器、H I UC E C控制器)
图 1 R - U A M I X平台下 U B系统架构 LN S 收稿 日期
作者简介
20 0 7一1 1
L u 将所有设备都作为文件进行处理, ix n 采用分层 封装的方法向应用层提供一种通用的文件系统接 口, 所以对设备的操作像对文件的操作一样方便。对用户
在该函数中实现该驱动从内核中卸载。 5 获取调试的验证信息
we r i t
rln e s p -e a a l r es m e l e
} ;
可以看到, 这个结构就是应用程序调用的标准函 数和驱动程序的接口。s p -e 等函数的功能由 a l rd me a 驱动负责实现。 3 对硬件的操作 实现对硬件的操作也不需要驱动直接操作设备 I / 0 只需调用内核支持的A I , P 函数, 例如读取批量设备数
返回设备句柄。
据不能直接互访, 必须要借助 c yfm e ) y o e us ( o - p r o r ,p c t ue ) o s ( 两个函数在两个空间中传递。 - r
4 驱动模块的加载方式
每一个设备都对应一个/e dv目录下的设备文件, 也就是设备节点。标识设备需要三个因素, 即设备类 型和主、 次设备号。在本设计中, dvub 目录下, 在/e s / / m nd _d 8 20建立一个名字为 u _d b ko u s c 0 , s b 10 s s( b u s s p dv e 的字符设备节点, a l ei ) m e c 主设备号 10次设备 8,
内存设备驱动程序设计分析
完整的内存设备驱动程序目录一、设备驱动中的并发控制 (2)1、并发 (2)2、自旋锁 (2)2.1、自旋锁的使用 (2)3、信号量 (2)3.1、信号量的相关操作 (3)3.2、信号量用于同步 (3)二、设备驱动中的阻塞与非阻塞 (3)1、阻塞操作 (3)2、非阻塞操作 (3)3、等待队列 (3)3.1、等待队列的相关操作 (3)4、轮询操作 (4)三、设备驱动中的异步通知 (4)1、异步通知 (4)2、信号的接收 (4)3、信号的释放 (4)3.1、异步通知编程用到一项数据结构和两个函数 (4)四、设备I/O端口和I/O内存的访问 (5)1、I/O端口与I/O内存 (5)2、可以使用以下函数访问定位于I/O空间端口 (5)2.1、I/O内存 (5)2.2、对设备内存映射的虚拟地址的读写 (5)3、申请与释放设备I/O端口和I/O内存 (5)4、设备I/O端口和I/O内存访问流程 (5)4.1、设备I/O端口访问流程 (5)4.2、I/O内存访问流程 (5)五、globalfifo驱动涉及的结构体、操作及代码 (5)1、globalfifo设备结构体 (5)1.1、cdev结构体 (6)1.2、设备号的分配和释放 (6)1.3、struct file_operations结构体 (6)2、使globalfifo驱动实现异步通知 (7)3、文件打开函数于释放函数 (7)4、读写函数 (7)4.1读函数 (7)4.2、写函数 (8)5、ioctl设备控制函数 (10)6、轮询操作 (10)7、初始化并注册cdev (11)8、文件操作结构体 (11)9、设备驱动模块加载函数 (12)9.1自动创建设备文件 (13)10、模块卸载函数 (13)11、其他代码 (13)11.1、必要的头文件 (13)11.2模块的相关信息 (14)六、Makefile (14)七、模块加载 (14)1、直接编译内核 (14)2、使用模块法 (15)设备驱动最通俗的理解是“驱使硬件设备行动”。
WinCE.NET下USB OTG设备驱动程序设计
下USB OTG设备驱动程序设计孔旋,邓中亮北京邮电大学电子电子工程学院计算机应用技术专业,北京(100876)E-mail:kongxuan1982@摘要:本文介绍了USB OTG技术,分析了两用USB OTG设备驱动程序配置模型以及下设备驱动程序模型,并详细介绍了下pl2303的usb转串口桥接器芯片驱动程序的设计与实现。
关键词:USB OTG,,驱动程序1.引言USB,全称是Universal Serial Bus(通用串行总线)。
在1994年年底,由当时的康柏、IBM、Microsoft等多家公司联合发起成立的通用串行总线开发者论坛(USB Implementers Forum,简称USB IF)先后陆续推出了USB0.7、USB1.1、USB2.0规范,其理论传输数率最高可达480Mb/s。
最近,根据现有的USB接口在有线/无线,性能及应用规范上的不同,USB IF将USB接口分为5类,并发布了相应的标识,分别是:Wireless USB、Original USB、Hi-Speed USB、On-The-Go USB及Hi-Speed On-The-Go USB[1] 。
是微软公司向嵌入式领域推出的一款紧凑、高效的32位嵌入式操作系统,具有多任务、实时性、模块化及可伸缩性、强大的通信和多媒体能力等特点[2] ,在移动计算、工业控制和信息家电等诸多领域都有广泛的应用。
本文将通过工具Platform Builder实现TI OMAP850 PDA手机平台下USB OTG设备驱动程序,并实现基于OTG技术的一种应用——在无PC条件下,以PDA手机平台端为USB 主机端的数据通信。
B OTG技术2.1 OTG技术简介USB技术的发展,使得PC和周边设备能够通过较简单、可方便热插拔的方式连接在一起,通过USB总线,在PC的控制下进行数据交换。
但这种方便的数据交换方式,就在不久以前(10年以内),一旦离开了PC,各设备间无法利用USB接口进行操作,因为当时没有任何一种PC以外的其他设备能够充当PC一样的Host。
SD、MMC规范及其驱动程序设计_数据读写流程
f a r s igh t I n c .LINUX 设备驱动高级班补充材料SD/MMC 的规范及其驱动程序设计华清远见 深圳2008.10(内部资料,请勿外传)华清远见(2008) 版权所有f a r s igh t I n c .一、SD/MMC 规范概述..................................................................................................3 1. 硬件规范......................................................................................................................3 2. SD/MMC 卡中的信息..................................................................................................4 3. MMC 提供的命令........................................................................................................6 4. 其它............................................................................................................................13 二、 S3C2410提供的SD/MMC 编程界面SDI (13)1. SDI 的主要特性.........................................................................................................13 2. 卡操作流程说明........................................................................................................13 3. 有关SD/MMC 卡的中断说明..................................................................................14 4. 有关SDI 的register .. (14)f a r s igh t I n c .一、 S D/MMC 规范概述 1. 硬件规范MMC 卡分共有7个触点(引脚),分为两种操作模式,分别为MMC 模式、与SPI 模式,两种模式对引脚的定义是不同的。
基于EZ-USB FX3的驱动程序设计
基于EZ-USB FX3的驱动程序设计刘杰;刁节涛;李楠;孙兆林【摘要】USB3.0数据传输接口以其在传输速度方面具有的优势正逐渐取代USB2.0接口成为电子设备接口的主流,驱动开发需求也与日俱增.传统的Driver Studio+ WDM驱动设计方法难度大、耗时长,已无法满足现实应用需求.文中采用全新的WDF驱动架构,通过通用驱动程序改进的方法,在Visual Studio2013+ WDK8.1的开发、编译环境下进行了USB3.0驱动程序设计.实验结果表明,该方法设计的驱动可稳定运行,有效地降低了驱动开发难度,并且缩短了开发周期.【期刊名称】《电子科技》【年(卷),期】2016(029)007【总页数】4页(P68-71)【关键词】USB3.0驱动;WDF;EZ-USB FX3【作者】刘杰;刁节涛;李楠;孙兆林【作者单位】国防科学技术大学电子科学与工程学院,湖南长沙410073;国防科学技术大学电子科学与工程学院,湖南长沙410073;国防科学技术大学电子科学与工程学院,湖南长沙410073;国防科学技术大学电子科学与工程学院,湖南长沙410073【正文语种】中文【中图分类】TP334.7USB(Universal Serial Bus)接口自诞生以来已经走过了10多年的历史,其具有廉价、易用、传输速度快、兼容性好等一系列优点,被广泛用于电子设备的数据传输接口。
以前,USB开发者采用WDM的驱动模式进行Windows操作系统下的USB驱动开发,但在Windows操作系统经历了Win7、Win8和最新的Win10革新之后,原始的WDM模式已经无法满足现实的驱动开发需求。
因此,WDF这种新的驱动开发模式应运而生。
赛普拉斯的EZ-USB FX3是新一代USB 3.0外设控制器,其集成了USB 3.0和USB 2.0 传输接口和32位ARM926EJ-S 微处理器[1],具有强大的数据处理能力,在数据传输领域充当着重要角色。
基于T-Kernel的WLAN网卡驱动设计
基于T-Kernel的WLAN网卡驱动设计邹昱武汉理工大学信息工程学院,武汉 (430070)E-mail:zouyuxx@摘要:无线网络与嵌入式系统的互联有着广阔的应用前景。
本文从T-Kernel操作系统的特点及其设备驱动的结构入手,提出了WLAN网卡硬件设计方案,分析了嵌入式T-Kernel 操作系统下WLAN网卡驱动的原理与一般特性,并着重阐述了其驱动的设计方法、网卡初始化、重要处理函数的作用以及数据包的发送和接收过程,为无线网络与嵌入式系统的结合提出了一种有效的解决方案。
关键词:T-Kernel;设备驱动;WLAN;处理函数中图分类号:1.引言随着网络通信和移动通信的发展,无线局域网WLAN(Wireless Local Area Network)技术迅猛发展,无线局域网络能利用简单的存取架构让用户透过它,达到“信息随身化、便利走天下”的理想境界[1]。
另一方面,随着电子与信息技术的快速发展,嵌入式系统应用到了社会生活的每个角落,如手机、个人数字助理(PDA)、笔记本电脑等。
嵌入式系统与无线网络的结合也成为一种必然的趋势。
本文从T-Kernel操作系统的特点及其WLAN层次模型入手,提出了一种基于嵌入式T-Kernel操作系统的WLAN网卡驱动程序设计方案。
2.T-Kernel的系统结构T-Kernel是构建于T-Engine之上的标准化的开源实时操作系统核心,由TRON发展而来,并以ITRON为基础,凝聚了嵌入式应用的实时、多任务OS领域中具有20多年历史的TRON工程的成果、业绩和经验技术[2]。
T-Kernel的设计采用了微内核的结构,它仅包含实时核心的基本功能,不包括文件管理、网络管理和GUI(Graphical User Interface)等功能,这一点与ITRON是一样的。
文件管理等功能则由运行在T-Kernel的基本中间件提供,与T-Kernel组合使用。
其中具有代表性的是提供文件管理、事件管理和过程管理等功能的T-Kernel Extension。
基于KMDF的PCI Express设备驱动设计
基于KMDF的PCI Express设备驱动设计张小磊;孟李林;崔晨琪【摘要】Against a new generation of driven model framework launched by Microsoft ,this paper intro-duces the framework of the kernel model driven development ,designs and implements a driver for PCI Ex-press endpoint equipment ,and it is carried out by the use of self-developed PCI Express data encryption card based on FPGA .The experiment shows that driver based on KMDF can work stably and reliably .%针对微软推出的新一代的驱动模型框架WDF ,介绍了其内核模式驱动开发的框架KMDF ,设计实现了一种针对PCI Express端点设备的驱动程序,使用自主研发的基于FPGA 的PCI Express数据加密卡对其进行了验证,实验表明基于KMDF的驱动程序能稳定、可靠地工作。
【期刊名称】《西安航空技术高等专科学校学报》【年(卷),期】2014(000)001【总页数】5页(P59-63)【关键词】KMDF;PCI Express;FPGA;设备驱动【作者】张小磊;孟李林;崔晨琪【作者单位】西安邮电大学电子工程学院,陕西西安710061;西安邮电大学电子工程学院,陕西西安710061;西安邮电大学电子工程学院,陕西西安710061【正文语种】中文【中图分类】TP302设备驱动是计算机系统里软硬件交互的接口,是计算机操纵硬件的基础,它的性能在很大程度上影响着整个系统的性能。
嵌入式Linux的设备驱动程序设计及其交叉编译
程 序 的编 写方 法 ; 同时 阐述 Y R —Ln x嵌 入 式交 叉编译 环境 的建 立及 其操作 要 点。 A M iu
关键 词 : 嵌入 式 Ln x 设备 驱动程 序 ; iu ; 交叉编译
中图分类 号 :P 1 T 36
文献标 识码 : B
文章编 号 :0 6—8 9 ( 0 9 0 0 2 0 10 9 6 2 0 )6— 0 7~ 5
得 设备 接收 输入 或将 输 出送到 设 备 。驱 动程 序 运 行 于 内核 空 间 , 是 系统 “ 任 ” 分 之一 , 动程 序 它 信 部 驱
的错误 有可 能 导致整 个嵌 入式 Ln x系统 的崩 溃 。如果 说 系 统调 用 是 Ln x内核 和 应 用程 序 之 间 的接 iu iu 口, 么设备 驱 动则可 以看 成 Ln x内核 与外 部 设 备 之 间 的接 口… 。设 备 驱 动程 序 向应用 程 序 屏蔽 了 那 iu
第2 7卷 第 6期 20 0 9年 l 2月
青 海 大 学 学 报 ( 自 然 科 学 版 ) Jun l f i h i nvri ( a r S i c ) o ra o n a U ie t N t e ce e Q g sy u n
Vo . 7 No 6 12 . De . o 9 c 2 o
l e hru h t e a ay i fa c r ce e i e i h s p p ra d t e t sa l h n fa i d t o g h n lsso haa trd vc n t i a e n h n,he e t bi me to n ARM z s
嵌入式Linux操作系统设备驱动程序设计与实现
t w i ) t c fe ,c n t h r s e t o _ ; ( r e( r t l t s u o s ca i — ,l f t) i z f
it e d isrc o e , s u t l* v i ,fl i t; n( a dr tu tn d 十 t c e , od i l r ) r i r f i d
摘要 :主要 阐述 了嵌入 式 L u i x设备 驱动 程序 的概 念 ,归纳嵌 入式 L u n i x设备 驱动程 序 的共 性 , 讨嵌入 式 L u n 探 i x设备 n 驱 动程序 具 体 开发 流程 以及驱 动程 序的 关键 代码 ,总结嵌入 式 L u 设 备驱 动程 序 开发 的主 导思 想。 ix n 关键 词 :嵌入 式 系统 ;Ln x i ;设 备 驱动程 序 ;内核 u
l f t l ek( rcfe,l ft n) o t ( l e) t t l s su o i f ,it ;
_
sie t ra ) t c fe ,c a ,s et o c sz ( e d( r t l s u h r i ,1 _; i z )
_
s ie sz
i (s eO sutnd t cfe ,i ,sl tal ) n e c (rcioe ,sut l t l t r n e c be ; i t e t
i (i t) t c i d t c fe ,u s n d i ,u s e n o 1( r t n e ,s u ti n i e t n i d t c su o r l g n n g i) n; t
{ a : 1 die ra , r d r r ed e 0 v_
wr e I rv r wrt , i : Od ie t ie
通用串行总线USB的驱动程序设计
文章编号:1009-8119(2005)04-0040-03基于WDM的USB驱动程序设计赵娟1 仲顺安1 郭磊2(1.北京理工大学信息科学技术学院,北京 1000812.石家庄陆军参谋指挥学院教育技术专业,石家庄 050064)摘要简单介绍了USB的特性。
为了介绍USB驱动,重点阐述了WDM驱动程序的原理和Windows系统内核管理机制和应用程序的区别。
并给出了利用Driverstudio的C++语言编写的例程。
关键词 USB设备,WDM,操作系统,驱动程序The Implementation of the USB Driver Based on WDMZhao Juan Zhong Shun'an Guo LeiAbstrct The attribute of the USB is descripted in the paper. For developing usb driver, the mechanism of kenerl management and the privilege level of applications in window2000 are introduced in the paper. An example of the driver handling USB transfer programmed by using C++ with the help of the driverstudio is given. Keyword USB device,WDM,OS,Driver1 引言USB,全称是Universal Serial Bus(通用串行总线),它是由Compaq、Microsoft、Intel、IBM等七家公司共同开发的,旨在解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来已广泛地为各PC厂家支持。
USB.设备的WDM.驱动程序设计
USB设备的WDM驱动程序设计卡拉河海大学计算机及信息工程学院niekele2010@yahoo.fr摘要:本文介绍了WDM驱动模型,并且针对USB总线给出了USB设备的WDM驱动程序的设计方法。
关键词: WDM、USB总线、驱动程序一, W DM驱动模型介绍为了方便用户进行WINDOWS平台的驱动程序开发,Microsoft于1996年宣布了一种适用于当前广泛使用的WIN2000及WINDOWS XP操作系统的Win32驱动程序模型。
这个驱动模型就是WDM(Windows Driver Model)——WINDOWS驱动模型。
WDM驱动具有以下几个特点。
详见参考文献[1]第一章。
1)可移植性好,采用WDM模型的设备驱动程序在不同的Windows操作系统上基本上是二进制兼容的,而在不同的CPU平台Windows操作系统上是源代码兼容的。
2)分层结构。
WDM模型使用了如图1的层次结构。
图中左边是一个设备对象堆栈。
设备对象是系统为帮助软件管理硬件而创建的数据结构。
一个物理硬件可以有多个这样的数据结构。
处于堆栈最底层的设备对象称为物理设备对象(physical device object),或简称为PDO。
在设备对象堆栈的中间某处有一个对象称为功能设备对象(functional device object),或简称FDO。
在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。
位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO 之上)的过滤器设备对象称为下层过滤器。
3)可配置性好。
WDM驱动程序通过其底层的类(总线)驱动程序枚举和访问硬件资源,使得设备的配置变得相对简单和容易。
而且WDM驱动程序还可以支持WMI(Windows Management Instrumentation),通过WMI,用户可以控制驱动程序的某些行为和属性。
4)支持即插即用和电源管理。
基于Timedout框架的GPIO驱动分析【精选】
Timed GPIO驱动程序分析Timed GPIO驱动程序是android系统基于linux内核新增加的一类驱动程序,这类驱动程序主要是运用了内核定时器,与内核定时器进行绑定,使得控制GPIO口的高低电平与时间打上关系,既可以实现在一定的时间实现GPIO口为高或者低电平。
Timed GPIO驱动被实现为平台设备驱动,Timed GPIO驱动源码位于如下目录:\kernel\drivers\staging\androidTimed GPIO驱动程序主要包括如下几个文件:Timed_gpio.cTimed_gpio.hTimed_output.cTimed_output.hTimed_gpio.c文件为具体的驱动程序,Timed_output.c为向sys文件系统注册类的框架代码,下面将具体分析每一个文件的作用及实现的具体功能。
首先分析注册类的框架代码:Timed_output.c Timed_output.hTimed_output.h文件分析:struct timed_output_dev {const char*name;void (*enable)(struct timed_output_dev *sdev, int timeout);int (*get_time)(struct timed_output_dev *sdev);struct device*dev;int index;int state;};extern int timed_output_dev_register(struct timed_output_dev *dev);extern void timed_output_dev_unregister(struct timed_output_dev *dev);Timed_output.h文件主要定义了一个结构体timed_output_dev设备结构体,该结构体表示一个具体的设备,Name:代表Time GPIO设备的名字,enable:为一个函数指针,主要用于设置定时器的过期时间,Enable:用于获取离过期还剩余的时间。