- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinCE和Win2000/XP设备驱动开发的区别 Windows CE是一个32位
WinCE和Win2000/XP设备驱动开发的区别Windows CE是一个32位、多任务、多线程的嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域设计的操作系统产品,在外观和使用的感觉上十分接近桌面Windows系统。它使用平面内存模式寻址,可以同时运行多个程序并支持一个程序中的多个线程,并且非常精炼,只有很小的内存要求。与基于PC的操作系统不同,Windows CE不需要标准硬件,反而支持各种各样的CPU(如X86、PowerPC、ARM、MIPS等),通过OEM适配层(OEM adaptation layer)可以把Windows CE适配到任何硬件平台。Windows CE是微软Windows操作系统家族的一个成员,支持用于Windows 2000/XP和Windows 98等桌面Windows操作系统的Win32 API的一个子集。由于它不是桌面Windows操作系统的一部分或缩减版本,使得开发Windows CE的驱动程序与开发桌面Windows的驱动程序有所不同。本文将着重讨论这些区别,以使广大熟悉桌面Windows驱动程序开发的程序员能快速掌握嵌入式操作系统WindowsCE驱动程序的开发方法。1 驱动结构模型比较在桌面Windows系统,以支持Windows2000/XP的WDM驱动模型为例。WDM体系结构实行分层处理,即设备驱动被分成了若干层——最高层驱动程序、中间层驱动程序、最低层驱动程序,如图1所示。在Windows CE驱动中,按驱动的结构可以分为两种类型——分层式设备驱动程序和整体式驱动程序,如图2所示。分层式设备驱动程序由上层和下层两部分代码组成。上层的程序叫做模型设备驱动程序(MDD),下层的程序则叫做平台相关的驱动程序(PDD)。整体式驱动程序的源代码由中断服务线程代码和针对平台的代码组成。同桌面Windows设备驱动结构模型相比,Windows CE设备驱动相对简单一些。正如图1和图2所示,两种操作系统的设备驱动虽然存在许多相似的地方,都采用了模块、分层的设计方法,但是还存在许多不同的地方。在Windows CE操作系统中,分层的驱动程序并不适用于所用的驱动,尤其是将驱动程序分为两层将会导致在驱动程序操作时附加的功能调用,这无疑会降低驱动程序的效率。对于时间或性能关键的实时操作,整体式驱动程序将会更适合。在桌面Windows系统中,驱动各层通信之间使用一种称为I/O请求包(IRP)的数据结构进行通信。影响到设备的每个操作都使用I/O请求包,采用层次结构可以使I/O请求过程更加明了。I/O管理器发送IRP来请求驱动程序的处理,通常IRP由分层的驱动程序栈来处理,高层的驱动程序把请求划分成更简单的请求并传递给下层驱动程序。IRP首先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下层的驱动程序。每一层驱动程序都可以决定如何处理IRP。而Windows CE驱动各层之间的通信没有采用IRP通信机制,而是通过接口函数调用实现的。设备驱动程序接口(Device Driver Interface,DDI)是在MDD层中实现的函数集,系统中的GWES模块通过这个接口调用设备驱动程序;设备驱动程序服务器接口(Device Driver Service Provider Interface,DDSI)是在PDD层中实现的函数集并由MDD调用。2 设备驱动组成部分比较简单地说,驱动程序是一些例程的集合,它们被动地存在,等待主机系统软件来调用或激活它们。在Win-dows系统中驱动,具体的驱动程序有所不同,其包含的例程也不同,但其主要例程是相同的。图3描述一个Windows驱动的基本流程。以下从几个方面阐述WindowsCE和桌面Windows设备驱动组成的不同。2.1 驱动程序的入口点在桌面Windows和Windows CE两个系统中的驱动程序都含有初始化模块,该模块主要功能是完成驱动程序的初始化及卸载。在桌面Windows系统的初始化模块中,包括每一个设备驱动程序都有的一个初始化入口点——DriverEntry例程,每次设备驱动程序启动时该例程被系统自动调用。其最重要的功能是设置驱动程序对应于I/O请求的主功能代码(MajorFunction)的回调例程。DriverEntry例程如下:其中,AddDevice例程是在系统添加一个设备时被PnP管理器调用的,其主要工作是创建并初始化设备对象;DriverUnload例程在系统卸载硬件时使用,由I/O管理器调用,释放所有资源。初始化模块中还包括Create和Close两个例程,这是Win32程序获得和释放设备句柄的唯一途径。与桌面Windows璞盖绦蚩啾龋琖indowsCE设备驱动程序开
您可能关注的文档
- TXP 虚拟机的报警系统实现.PDF
- T型微通道内液滴流型分布及不稳定性分析 - 中国科学院广州能源研究所.PDF
- U-Pb同位素测年新方法 - 天津地质调查中心 - 中国地质调查局.PDF
- UIQ 3及gSOAP Web服务入门.PDF
- UHV-CVD系统自组装生长Si基Ge量子点 - 厦门大学学术典藏库.PDF
- UP BOX 用户手册.PDF
- UNIX的主要命令例如 - Read.PPT
- USB 31 接收机一致性测试.PDF
- USB 蓝牙模块BT-USB-10 - 深圳蓝色飞舞科技.PDF
- TMS320C2810, TMS320C2811, TMS320C2812 数字信号 - 德州仪器.PDF
文档评论(0)