
初级工程师
 
- 积分
- 2484
- 在线时间
- 33 小时
- 精华
- 0
- 注册时间
- 2016-12-5
- 最后登录
- 2020-12-9
- 专家等级
 - 结帖率
- 0%
- 打赏
- 0.00
- 受赏
- 0.01
|
WinDriver 是一套由 JUNGO 公司出版,支持用户层级设备驱动开发并且提
供高度封装的 API 库和友好的开发向导,用于开发设备驱动程序的组件,本文
所提到的 WinDriver 版本为 10.01。WinDriver 面向多种操作系统,支持开发者在Windows、WindowsCE 和 Linux 系统下开发驱动程序;使用 WinDriver 开发者可
以开发 PCI/PCMCIA/CardBus/ISA/EISA/CompactPCI/PCI Express 驱动程序。
WinDriver 支持多种编译器,包括标准 C、C++、.NET、 VB、嵌入式 VC++等编译器。WinDriver 支持跨平台,即对于 WinDriver 支
持的所有平台,开发者只需要重新编译编写的驱动程序就可以让驱动程序运行在
新的平台上。WinDriver 还向开发者提供了非常友好的向导工具。开发者可以使
用向导工具查看硬件设备的资源信息,并检测硬件设备是否正常工作。如果硬件
设备能够正常工作,开发者可以使用向导工具建立一个能够对硬件设备进行基本
读写操作的驱动程序框架[
3]。WinDriver 向开发者提供了高度封装的 API 函数库,
帮助开发者完成驱动程序底层构架工作,极大地降低了开发驱动程序的难度。开
发者不必花费大量精力和时间在操作系统内核级编程上,只需要掌握 WinDriver
原理就能够快速进行 PCI 和 USB 等驱动开发。WinDriver 支持开发者在用户模
式下开发驱动程序,开发者不需要掌握硬件设备原理和操作系统内核机制,只需
要学会 WinDriver 的开发流程和调用 API 方法就能够编写驱动代码。虽然在用户
模式下编写驱动程序可以简化开发过程,但是在对代码执行效率要求高(如处理
中断信号)的部分,在用户模式下编写代码无法满足要求,必须在内核模式下编
写代码。为了解决这个问题,WinDriver 向开发者提供了内核插入模式(Kernel
PlugIn),允许开发者在用户模式下编写和调试代码,同时在内核模式下运行那
些性能要求高的部分,这种模式为驱动程序的效率和吞吐量提供了保障。在内核
插入模式下粗略估计吞吐量,大约每秒钟可以响应 100000 个中断。使用
WinDriver 开发 PCI 设备驱动代码可以通过 WinDriver 开发向导搭建驱动程代码
框架,然后修改框架代码,根据自己的需要编写定制功能代码,对于性能要求高
的部分可以采用内核插入模式实现;开发者也可以根据 WinDriver 文档,按照初
始化并打开硬件设备、申请资源、编写定制功能模块、释放资源、关闭硬件设备
的顺序,通过调用 API 实现驱动代码,对于性能要求高的部分采用内核插入模
式实现。
|
|