wince流驱动入门讲解.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
wince流驱动入门讲解

驱动的准备 1. 驱动程序完成以下功能: 对设备初始化和释放; 把数据从内核传送到硬件和从硬件读取数据; 读取应用程序传送给设备文件的数据和回送应用程序请求的数据; 检测和处理设备出现的错误。 2. 整个硬件系统资源在驱动程序面前是赤裸裸的,驱动可以使用所有系统资源,编写驱动程序时我们必须格外小心驱动代码的边界条件,确保它们不会损坏整个操作系统。 3. WinCE毕竟是一个嵌入式系统,有其自身的特殊性,为了提高运行效率,所有驱动皆为动态链接库,驱动实现中可以调用所有标准的API。而在其他Windows系统中可能的驱动文件还有.vxd,.sys和动态链接库。 4. Windows支持的驱动: 1)虚拟设备驱动程序(Virtual Device Driver):Windows3.1(Windows95/98/Me) 2)内核模式驱动程序(Kernel Mode Driver):Windows NT 3)Win32驱动程序模型(Win32 Driver Mode):从Windows98开始使用。 其中WDM是目前主流,然而在WinCE系统中,由于硬件资源有限和嵌入式系统的特点,对其的支持非常有限。 WINCE驱动 1.WINCE驱动模型 目前Windows CE提供了4种设备模型,其中2种专门用于Windows CE 模型,另外2种模型来自于其它的操系统,如图1所示: 图1 Windows CE 各种驱动模型的关系 2.我们的工作 为了帮助开发者快速地开发Windows CE驱动程序,微软在Platform Builder中提供了大量的驱动程序例源代码,同时,芯片厂商或OEM厂商有时也提供一些设备的驱动程序源代码,这些驱动程序源代码在多数情况下可以直接拿来使用,但是在少数情况下需要开发者根据自己的设备硬件特性做一些移植的工作,修改例源代码,重新编译和调试驱动程序。移植工作虽然没有像开发一个全新的驱动程序那样富有挑战性,但它仍具有相当大的难度,其原因如下: 移植工作仍然要求开发者具有良好的软、硬件基础,熟悉驱动程序的基本开发和调试方法,并要求具有一定的开发环境和测试手段。 移植工作仍然需要了解驱动程序的架构,需要确切知道驱动程序对外暴露哪些接口,微软提供了哪些接口,还必须实现哪些接口等。 对于同一设备的驱动程序,其源代码往往位于Platform Builder多个不同的安装目录,移植工作首先需要找出所移植驱动程序的所有源代码的位置。 移植工作需要在所移植驱动程序的所有源代码中区分出与硬件有关的代码和独立于硬件的代码,熟悉每个软件模块的大致功能,找出需要更改的与特定硬件有关的代码,并详细分析这些代码。 大部分驱动程序的代码放在目录%_WINCEROOT%\public\COMMON\oak\drivers\下,这些驱动程序都是与平台无关的。此外,对于不同的平台,在BSP目录中也有一些驱动程序的代码,它们在%_WINCEROOT%platform\BSP Name\src \drivers\中,这些驱动都是与平台相关的。 移植工作所修改的源代码有可能仅仅只有几十行甚至几行代码,但在修改之前却需要花费大量的时间了解驱动架构、熟悉驱动接口、分析源程序代码、找出需要修改的位置。本质上讲,移植与从头开发一个驱动的差别仅仅在于少写了很多程序。省去了编写这部分程序的时,但对驱动程序开发者的水平要求似乎并没有丝毫的降低。 流接口函数 流接口函数也称作流接口驱动程序的入口点,每个流接口驱动程序必须实现一组标准的函数,用来实现标准的文件I/O函数和电源管理函数,这些函数提供给Windows CE操作系统的内核使用。这些函数通常叫做流接口驱动程序的DLL接口。以下介绍几个主要的流接口驱动接口函数。 (1)DWORD XXX_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode) 参数: DWORD hDeviceContext,设备驱动的句柄,由XXX_ Init函数创建的时候返回。 DWORD AccessCode,传给驱动程序使用的地址,这个地址跟读和写有关。 DWORD ShareMode,共享模式,这个参数用于一些特殊的设备。例如一些PC卡的设备读或写的时候是否可以共享。 返回值:返回驱动程序引用事例句柄。 描述:这个函数用于打开一个设备驱动程序,当应用程序准备对某一个设备进行读或写操作时,系统必须先执行CreateFile( )这个函数用于打开这个设备。这个函数执行以后系统才能够执行读和写操作。 (2)BOOL XXX _ Close(DWORD hOpenContext) 参数

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档