DriverWorks开发PCI驱动流程Word文档格式.docx

上传人:b****5 文档编号:19081751 上传时间:2023-01-03 格式:DOCX 页数:11 大小:1.51MB
下载 相关 举报
DriverWorks开发PCI驱动流程Word文档格式.docx_第1页
第1页 / 共11页
DriverWorks开发PCI驱动流程Word文档格式.docx_第2页
第2页 / 共11页
DriverWorks开发PCI驱动流程Word文档格式.docx_第3页
第3页 / 共11页
DriverWorks开发PCI驱动流程Word文档格式.docx_第4页
第4页 / 共11页
DriverWorks开发PCI驱动流程Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

DriverWorks开发PCI驱动流程Word文档格式.docx

《DriverWorks开发PCI驱动流程Word文档格式.docx》由会员分享,可在线阅读,更多相关《DriverWorks开发PCI驱动流程Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

DriverWorks开发PCI驱动流程Word文档格式.docx

5、用VC6.0打开NuMega\DriverStudio\DriverWorks\Source\VdwLibs.dsw工程;

6、设置VC6.0的Compile\Config的配置为WDMFree或Checked;

7、编译VdwLibs.dsw库建立DriverWork的库文件,对Free和Checked都要编译;

8、可以开始WDM驱动程序的开发了;

第二步用DriverWorks生成驱动程序框架

----以胜西S5933PCI卡为例

步骤1:

从程序组中选择或从VC6.0的主菜单DriverStudio中选择DriverWizard菜单项,便会弹出DriverWorksNT/WDM驱动程序的基本框架生成向导,见下图:

图2—1步骤1

步骤2:

在Project下填入工程名,如SX5933。

在Location选择工程文件存放的目录,再点Next进入下一个对话框。

选择WDM方式,再点Next进入硬件总线选择对话框。

图2—2步骤2

步骤3:

在SelectHardwareBus单选框中选择PCI,并在下面的栏目中填入PCIVendorID(如10EB),PCIDeviceID(如8376)。

这两项必须与你要访问的PCI设备的VID和DID一致。

PCISubsystemID和PCIRevisionID可以不填。

如填,也须与设备的SVID和SDID一致辞。

如不填,须手动删除INF文件中的有关项。

否则向导生成的INF文件不能完成该设备驱动程序的正常安装。

图2—3步骤3

点击Next进入步骤4。

图2—4步骤4

步骤4:

在此处可以修改Driver类名和文件名,也可采用系统默认的。

点击Next进入步骤5。

图2—5步骤5

步骤5:

此例去掉Read、Write、Cleanup的选择,只选择DeviceControl。

当然用户可根据自己应用的需要来选择。

点Next进入步骤6。

图2—6步骤6

步骤6:

选择I/O串行化方式,此例选择了None。

点击Next进入步骤7。

图2—7步骤7

步骤7:

此对话框是用来在驱动程序开始时从寄存器加载参数用,此例未用,故可不做任何改动。

点击Next进入步骤8。

步骤8:

设备类的定义和资源、接口、缓冲、电源的处理

根据你的硬件定义资源。

如I/O口,MEMORY,中断等。

SX5933PCI卡的PCI区域0(BAR0)为S5933内部寄存器用,区域1(BAR1)为SXL-100实验箱的I/O空间,区域2(BAR2)为SXL-100的存储空间。

SX5933PCI卡用到一个PCI中断。

以下三步是针对SX5933PCI卡上的两个I/O端口(BAR0和BAR1)和MEM空间(BAR2)而定义的三个资源。

向导会在驱动程序中加入相应的变量并替你完成映射。

点击“AddIOPort(s)…”按钮,在Name和PCIBaseAddress编辑框中输入如图2-9所示变量名IO0和数值0。

其它地方可不做改动,或根据实际需要做相应变动。

这样,变量m_IO0(只须输入IO0,向导会自动加上m_)就与BAR0对应。

图2-9

再点击“AddIOPort(s)…”按钮,在Name和PCIBaseAddress编辑框中输入如图2-10所示变量名IO1和数值1。

其它地方法可不做改动,或根据实际需要做相应变动。

这样,变量m_IO1(只须输入IO1,向导会自动加上m_)就与BAR1对应。

图2-10

点击“AddMemoryRange…”按钮,在Name和PCIBaseAddress编辑框中输入如图2-11所示变量名MEM0和数值2。

这样,变量m_MEM0(只须输入MEM0,向导会自动加上m_)就与BAR2对应。

图2-11

点击“AddIRQ…”按钮,为设备驱动加入一个中断处理对象以及其ISR和DPC例程。

向导会自动添加它们的初始化、连接代码。

下面定义设备的接口。

可定义两种对外接口,应用程序通过这两个接口中之一方可打开设备。

这里选择用符号链接,且将符号链接名改成SX5933。

该步骤中关于缓冲策略以及电源管理的设置可不做改动,或根据实际需要做相应变动。

点击Next进入步骤9。

步骤9:

如要与应用程序或与其它驱动程序进行数据交换,须加必要的DeviceIOControl的控制代码。

图2-12

点击“Add…”按钮,在ParameterName编辑框中输入如图2-13所示代码名称。

然后点击OK。

图2-13

再点击“Add…”按钮,在ParameterName编辑框中输入如图2-14所示代码名称。

图2-14

类似地,加入名为IOCTL_IO_WRITE的控制代码。

向导会在SX5933ioctl.h头文件中定义这些控制代码。

点击Next进入步骤10。

步骤10:

此步骤选择是否产生应用层的测试程序以及调试操作等。

此例采用的是默认方式。

点击Finish按钮,在接下来的提示框中点击OK。

接着向导会问你是否现在就要在VC中打开此工程。

如选择是,向导不但会直接在VC中打开该工程,而且还会替你将编译环境给你设置好。

接下来用户可以根据自己的需求添加相关内容了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1