PCI9052驱动开发全解

上传人:豆浆 文档编号:35343168 上传时间:2018-03-14 格式:PDF 页数:115 大小:818.21KB
返回 下载 相关 举报
PCI9052驱动开发全解_第1页
第1页 / 共115页
PCI9052驱动开发全解_第2页
第2页 / 共115页
PCI9052驱动开发全解_第3页
第3页 / 共115页
PCI9052驱动开发全解_第4页
第4页 / 共115页
PCI9052驱动开发全解_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《PCI9052驱动开发全解》由会员分享,可在线阅读,更多相关《PCI9052驱动开发全解(115页珍藏版)》请在金锄头文库上搜索。

1、PCI9052 驱动开发全解 1目目录录 第一章第一章 WDM 驱动程序开发环境的建立驱动程序开发环境的建立.2 第二章第二章 建立一个建立一个PCI处理的基本程序框架处理的基本程序框架 3 第三章第三章 PCI 资源配置的获取资源配置的获取11 1.KResource Assignment 类定义类定义.11 2.Windows98/2000 下下 PCI 资源配置的获取资源配置的获取14 第四章第四章 输入输出处理输入输出处理 .35 1.KIoRange 类的说明类的说明.35 2.I/O 处理的框架产生方法处理的框架产生方法.36 3.I/O 处理驱动程序及应用程序相关部份范例处理驱动

2、程序及应用程序相关部份范例.36 第五章第五章 中断处理中断处理 55 1.生成中断处理驱动程序的框架生成中断处理驱动程序的框架.55 2.怎样建立一个中断处理怎样建立一个中断处理.55 3.延迟处理过程调用延迟处理过程调用.57 4.怎样从内核驱动程序向应用程序发消息怎样从内核驱动程序向应用程序发消息.58 5.中断服务例程范例中断服务例程范例.60 第六章第六章 驱动开发的要点驱动开发的要点.79 PLX9052 PCI 板卡的开发板卡的开发 第一章第一章 概述概述84 第二章第二章 9052 简介简介89 第三章第三章 局部总线操作局部总线操作.91 第四章第四章 功能描叙功能描叙.99

3、 第第 五五 章章 ISA接口方式接口方式.107第六章第六章 PCI PCI 总线开发步骤总线开发步骤.110110 附录附录 PCI9052 PCI9052 开发板使用说明开发板使用说明.115115 PCI9052 驱动开发全解 2第一章第一章 WDMWDM 驱动程序开发环境的建立驱动程序开发环境的建立 我们用 NuMega DriverStudio 开发 WDM 驱动程序,它的环境建立方法如下: 1、 安装 VC6.0; 2、 安装相应操作系统的 DDK(如 2000DDK、98DDK 等) ; 3、 安装 NuMega DriverStudio; 4、 运行 NuMega Drive

4、rStudio 下 Tools 下的 Setup DDK and Start MSVC 程序; 5、 用 VC6.0 打开 NuMegaDriver StudioDriverWorksSourceVdwLibs.dsw 工程; 6、 设置 VC6.0 的 CompileConfig 的配置为 WDM Free 或 Checked; 7、 编译 VdwLibs.dsw 库建立 DriverWork 的库文件,对 Free 和 Checked 都要编译; 8、 可以开始 WDM 驱动程序的开发了; PCI9052 驱动开发全解 3第二章第二章 建立一个建立一个 PCI 处理的基本程序框架处理的基本

5、程序框架 第一节第一节、DriverWork 驱动程序生成向导使用简介驱动程序生成向导使用简介 DriverStudio 可以自动生成 WDM 驱动程序的基本框架,其操作流程如下: 步骤 1、运行 VC6.0 的菜单 DriverStudio(由 NuMega 产生的)下的 DriverWizard, VC6.0 弹出 WDM 驱动程序的基本框架生成向导,见下图: 图图 21 步骤步骤 1 步骤 2、在 Project 下填入工程名,如 BASE。在 Location 选择工程文件存放的目录, 再点 Next 进入下一个对话框。 选择 WDM 方式,再点 Next 进入硬件总线选择对话框。 步

6、骤 3、 在 Select Hardware Bus 单选框中选择 PCI, 并在下面的栏目中填入 PCI Vendor ID(如 10EB) ,PCI Device ID(如 8376) ,PCI Sub system ID 和 PCI Revision ID 可以不填。 PCI9052 驱动开发全解 4图图 22 步骤步骤 2 图图 23 步骤步骤 3 再点击 Next 进入步骤 4。 PCI9052 驱动开发全解 5图图 24 步骤步骤 4 步骤 4、在此处可以修改 Driver 类名和文件名,也可采用系统默认的,点 Next 进入步 骤 5。 PCI9052 驱动开发全解 6图图 25

7、 步骤步骤 5 步骤 5、此例去掉 Read、Write、Cleanup 的选择,只选择 Device Control。当然用户可 根据自己应用的需要来定义。点 Next 进入步骤 6。 图图 26 步骤步骤 6 步骤 6、选择 I/O 串行化方式,此例选择了 None。点击 Next 进入步骤 7。 PCI9052 驱动开发全解 7图图 27 步骤步骤 7 步骤 7、此对话框是用来在驱动程序开始时从寄存器加载参数用,此例未用,点 Next 进入步骤 8。 图图 28 步骤步骤 8 步骤 8、设备类的定义和资源、接口、缓冲、电源的处理。在此例中设备类用默认的, 资源请求未用 (此用来做一些 I

8、/O、 中断、 存贮器的处理) , Interface 属性页设置如下图 2_9。 Device name 为默认,Opendevice 选择 Symbolic Link Buffer,power 属性页为默认状 态。点击 Next 进入步骤 9。 步骤 9、 加 Device IO Control 的控制代码, 此例未加, 点击 Next 进入步骤 10 见图 2_10。 步骤 10、 此用来选择是否产生应用层的测试程序以及调试操作等。 此例采用的是默认 方式,点 Finish 完成基本框架的处理。 接下来用户可以根据自己的需求添加相关内容 PCI9052 驱动开发全解 8图图 29Inte

9、rface 属性页属性页 图图 210 步骤步骤 9 PCI9052 驱动开发全解 9图图 211 步骤步骤 10 第二节第二节 应用层调用应用层调用 WDM 驱动程序的方法驱动程序的方法 一、获取 WDM 驱动程序句柄 DriverWorks 提供了 2 个类来支持应用层的设备接口:CDeviceInterfaceClass 和 CDeviceInterface 。这些类被申明和定义在 devintf.h 文件中,该文件位于 DriverWork 安装 目录的.include 目录中。 CDeviceInterfaceClass 类包含所有设备信息。 应用程序可以使用CDeviceInter

10、faceClass 的实例去获得一个或更多的 CDeviceInterface 实例。CDeviceInterface 类抽象了一个单一设备接口。它的成员函数 DevicePath ( ) 返回一个路径名指针,它被发送到 CreateFile 去打开设备,即获取设备句柄。 下面的一个小范例显示了这些类的大多数基本使用方法。 extern GUID TestGuid; HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError ) CDeviceInterfaceClass DevClass(pClassGuid

11、, pError); PCI9052 驱动开发全解 10 if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface( if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout #include “Pci_con.h“ #include “Pci_conDevice.h“ #pragma hdrstop(“Pci_con.pch“) / Generated by DriverWizard version Dr

12、iverStudio 2.5.0 (Build 240) / Set a default 32-bit tag value to be stored with each heap block / allocated by operator new. Use BoundsChecker to view the memory pool. / This value can be overridden using the global function SetPoolTag(). POOLTAG DefaultPoolTag(_icP); / Create the global driver trac

13、e object / TODO: Use KDebugOnlyTrace if you want trace messages / to appear only in debug builds. Use KTrace if / you want trace messages to always appear. KTrace t(“Pci_con“); / / Begin INIT section #pragma code_seg(“INIT“) DECLARE_DRIVER_CLASS(Pci_con, NULL) / / Pci_con:DriverEntry / Routine Description: / This is the first entry point called by the system when the / driver is loaded. / Parameters: / RegistryPath - String used to find driver parameters in the / registry. To locate Pci_con look for: / HKEY_LOCAL_MACHINE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号