【驱动】WinDriver学习

第二章 WinDriver 开发环境

由于项目需要,Win7+VS+DDK的方案,相对来说比较复杂。 在刚着手移植工作,我采用的是框架是WDF+VS2012的方案,但由此生成的驱动文件无法成功安装到PC机上,这让我很是郁闷。 经过了两天的挣扎后,我决定转用WINDRIVER的方法,做过WINDOWS驱动的都会清楚,WINDRIVER会使开发进度得到提升,因为它的简易性。折腾了一个晚上后,终于将它的开发环境搭建成功了。下面简单的讲述一下环境搭建过程:
WinDriver 安装略过。下面讲VS2012,或看下面WinDriver 支持的版本,根据自己需要去安装就可以了。
在这里插入图片描述

1、安装VS2012

  安装VS2012略过,主要用它来做数据传输应用程序的,WINDRIVER提供了一系列API接口,方便了用户,使用户能直接进入用户态的编程,因为内核态的编程它已做好,不需要进行修改,当然你也可以对它进行修改,这便要求你对驱动编程有一定的认识。
  微软官网下载 VS2022 的安装包。

图 1 VS2022 下载页面

和先前的各个 VS 版本一样,VS2022 细分为三个版本,分别是:
社区版(Community):免费提供给单个开发人员、开放源代码项目、科研、教育以及小型专业团队!大部分程序员(包括初学者)可以无任何经济负担、合法地使用 VS2022 了。
专业版(Professional):售价 45 美元/月。
企业版(Enterprise):售价 250 美元/月。

对于大部分程序开发,以上版本区别不大,免费的社区版一样可以满足程序员需求,所以我推荐大家使用社区版,无需破解,轻松安装,直接就能用。

按照图 1 进行操作,会得到一个名 VisualStudioSetup.exe 的可执行文件,接下来就可以安装 VS2022 了。
安装VS2022

  1. 双击启动 VisualStudioSetup.exe,开始安装 VS2022:
    在这里插入图片描述

图 2 开始安装 VS2022

  1. 点击“继续”,待安装环境准备好后,会弹出如下的窗口:

在这里插入图片描述

图 3 选择要安装的模块

除了支持 C/C++ 开发,VS2022 还支持 C#、F#、Visual Basic 等编程语言,没有必要安装所有的组件。学习 C/C++,只需要安装 “使用C++ 的桌面开发”,右侧的【安装详细信息】版块保持默认即可。

VS2022 体积较大,不建议安装在系统盘(通常是 C 盘),可以选择其它盘(比如图中选择的 D 盘)。

一切选择完成后,点击“安装”按钮开始安装。安装过程可能需要一段时间,请读者耐心等待。

  1. 看到下图的提示,表明 VS2022 已经安装成功,接下来就可以启动 VS2022 编写 C/C++ 程序了。
    在这里插入图片描述

图 4 VS2022 安装完成
打开VS2022
安装成功后,可以在开始菜单里找到 VS 2022:
在这里插入图片描述

图 5 成功安装的 VS2022

点击 Visual Studio 2022,就可以打开使用了,请猛击《VS2022使用教程(使用VS2022编写C语言程序)》系统学习如何用 VS2022 运行 C 语言程序。

2、安装WINDRIVER

   在网上下个WINDRIVER,成功安装后,可以用它来生成驱动文件,这个相对比较容易。不进行详述,通常PCI卡插进电脑后,用Driver Wizard向导生成的SYS文件是可以安装上去的。

3、配置环境

  由于目标机是WIN7_64位的系统,用WIN32去写应用是行不通的,所以需要配置一下环境。 在新建的MFC工程里打开工程属性,将链接器里目标计算机修改成MachineX64 (/MACHINE:X64)的,通常是采用32位的,这里需要修改成X64的才行,然后便可以平台里选择X64,选择后再将常规->MFC的使用修改为“在共享DLL中使用MFC”。第三步“链接器”->"高级"->"入口点"修改成WinMainCRTStartup,这是由于默认会使用控制台的入口(MAIN),此点修改可将入口定为MFC的入口。第四步:配置头文件、库文件目录等,在VC++目录下“包含目录里”加入C:\WinDriver\include; (这在我的WINDRIVER安装目录下,具体要修改),库目录下增加C:\WinDriver\lib\amd64;。 第五步:以上操作基本可以保证你能编译所有代码,但链接不成功,此时需要加入链接时需要的库文件,在“链接器”->“输入”里加入wdapi1020.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)。 

完成上述步骤后,便可以将WINDRIVER目录下提供的例子,如 C:\WinDriver\xilinx下有一个64位的应用例子(控制台的),将此例子与你实际应用的程序结合起来便可。

PCI Express(PCIe)是一种高速串行总线标准,用于连接计算机的各种设备(如显卡、网卡、声卡等)。在Windows操作系统中,PCIe设备驱动程序是必不可少的,因为驱动程序是操作系统和硬件之间的桥梁。下面将介绍PCIe应用程序开发的原理和详细步骤。

一、PCIe原理

PCIe是一种高速串行总线,它基于点对点连接的思想,每生成exe文件内嵌指定页面个设备都有自己的唯一标识符,可以直接与主机通信。PCIe总线的速度比传统的PCI总线快得多,它的传输速度可以达到每秒8GB/s以上,这使得它成为连接高性能设备的理想选择。

PCIe前端打包PCIe总线在物理层面上分为一组差分对,每个差分对在传输时只传输一个比特,这种方式可以提高传输速度并减少噪声干扰。每个PCIe设备都有一个唯一的地址和标识符,它们可以通过寄存器映射的方式进行访问。PCIe设备可以是输入/输出设备(如显卡、网卡、声卡等),也可以是处理器或存储器设备。

二、PCIe应用程序开发

PCIe应用程序开发包括以下步骤:

1.确定设备的PCIe ID

PCIe设备都有唯一的厂商ID和设备ID,这些ID可以通过设备的说明书或者PCIe ID数据库来获取。在Windows设备管理器中,可以查看设备的PCIe ID,如下图所示:

2.编写驱动程序

驱动程序是操作系统和硬件之间的桥梁,它可以让操作系统识别和控制PCIe设备。在Windows操作系统中,驱动程序通常是使用C或C++编写的。驱动程序可以通过WDM(Windows驱动程序模型)或者WDF(Windows驱动程序框架)进行开发。WDM是一种传统的驱动程序模型,而WDF是一种新的驱动程序框架,它可以更容易地开发驱动程序,并提供更好的可靠性和稳定性。

3.注册驱动程序

在Windows操作系统中,驱动程序必须注册才能被操作系统加载和使用。驱动程序可以使用WDM或WDF提供的注册函数进行注册。在注册时,需要指定驱动程序的名称、设备ID、硬件资源等信息。

4.编写应用程序

应用程序是用户与PCIe设备交互的接口,它可以通过驱动程序来访问PCIe设备。应用程序可以使用C、C++、C#等编程语言进行开发。在Windows操作系统中,应用程序可以使用WinAPI或者.NET Framework提供的相关函数和类库来访问PCIe设备。

5.测试和调试

在开发PCIe应用程序时,测试和调试是非常重要的。可以使用各种调试工具来检查驱动程序和应用程序的运行状态,如Windows调试器、Visual Studio调试器等。

总结

PCIe是一种高速串行总线,用于连接计算机的各种设备。在Windows操作系统中,PCIe设备驱动程序是必不可少的。PCIe应用程序开发包括确定设备的PCIe ID、编写驱动程序、注册驱动程序、编写应用程序、测试和调试等步骤。PCIe应用程序开发需要具备相关的硬件和软件知识,如果您想深入了解PCIe应用程序开发,请参考相关书籍和资料。

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值