如何在_Windows_CE_50_中开发和测试设备驱动程序.doc

如何在_Windows_CE_50_中开发和测试设备驱动程序.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何在 Windows CE 5.0 中开发和测试设备驱动程序 发布日期: 2005-3-31 | 更新日期: 2005-3-31 Mike Hall Microsoft 适用于: Microsoft Windows CE version 5.0 摘要:本文介绍如何开发和测试 Windows CE 5.0 设备驱动程序。本文循序渐进地介绍如何创建流驱动程序,如何创建自定义 Windows CE Test Kit (CETK) 测试,以及如何编写应用程序来测试驱动程序。这要花费大约 60 分钟来完成。 从 Microsoft 下载中心下载 Windows CE 5.0 Embedded Development Labs.msi。 本页内容 第一部分:建立设备驱动程序 第二部分:测试流驱动程序测试代码 第三部分:检验驱动程序 第四部分:使用 Windows CE Test Kit 第五部分:创建自定义 CETK 测试 第六部分:确定谁拥有流驱动程序 小结 第一部分:建立设备驱动程序 在本练习中,您将使用 Platform Builder 来添加作为设备驱动程序的项目。 在开始编写驱动程序之前,您应该了解设备驱动程序的用途。驱动程序将基础硬件从操作系统中抽象出来,使之更好地面对应用程序开发人员。应用程序开发人员无需知道显示硬件或串行硬件的详细信息 — 例如,串行设备是用 Universal Asynchronous Receiver/Transmitter (UART) 实现的还是用 field-programmable gate array (FPGA) 实现的。在大多数情况下,应用程序开发人员根本不需要知道硬件是如何实现的。 Microsoft Windows 为开发人员公开了调用硬件的应用程序编程接口 (API),他们不需要知道物理硬件的情况。例如,为了向串行端口写入数据,应用程序开发人员只需调用 COMx 上的 CreateFile( )(其中 x 表示您要打开的串行端口编号,例如 COM1 代表串行端口 1),再调用 WriteFile( ) 以将一些字节数据写入串行端口,然后调用 CloseHandle( ) 以关闭串行端口。不管基础串行硬件是什么(也不管您运行的是哪个 Windows 操作系统),API 都会以同样的顺序执行。 相同的情况也适用于其他 API:如果您希望在显示表面画一条线,那么您只需调用 PolyLine( )、MoveToEx( ) 或 LineTo( )。作为应用程序开发人员,大多数情况下您都不需要知道显示硬件的情况。此处调用的 API 将返回显示表面的维数、颜色深度等等。 好消息是开发人员可以调用一个一致的、众所周知的 API 集。这些 API 将他们的应用程序从基础硬件中抽象出来。这至关重要,因为应用程序开发人员无法知道应用程序是运行在便携式计算机上,还是运行在 Tablet PC 上,抑或运行在桌面计算机上。无论电脑以 1024×768 还是 1600×1200 的分辨率运行,应用程序开发人员都可以在运行时查询屏幕分辨率和颜色深度,因此不需要构建只在特定硬件上运行的应用程序。 驱动程序只是一个动态链接库(DLL)。将 DLL 加载到父进程地址空间;然后父进程就可以调用从该 DLL 公开的任何接口。通常,父进程通过调用 LoadLibrary( ) 或 LoadDriver( ) 来加载驱动程序。LoadDriver 不仅将 DLL 加载到父进程地址空间中,而且还要确保 DLL 没有“paged out”。 调用进程如何知道从您的 DLL 或驱动程序公开了哪些 API 或函数呢?父进程调用 GetProcAddress( ),后者可以获取函数名称和所加载的 DLL 的 hInstance。如果函数存在,调用返回该函数指针;如果没有从 DLL 公开该函数,则返回 NULL。 流驱动程序也公开了一个众所周知的函数集。对于流驱动程序,您会希望能够将字节流写入设备中,或者从设备中读取字节流。因此,在前面使用的串行端口示例中,您可能希望从您的驱动程序公开如下函数集:Open、Close、Read 和 Write。流驱动程序还公开一些其他函数:PowerUp、PowerDown、IOControl、Init 和 DeInit。 您可以将现有的操作系统映像用于模拟器平台(Basic Lab MyPlatform 平台最理想)。然后,您就可以将 DLL/驱动程序项目添加到该平台了。 在构建并下载了该平台之后(这表明操作系统启动并运行良好),您需要创建您的主干驱动程序。您可以使用 File 菜单上的 Platform Builder New Project or Fi

文档评论(0)

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

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

1亿VIP精品文档

相关文档