PCIe扫盲系列(五)
+ -

基于WinDriver快速开发PCIe驱动简明教程

2024-06-27 53 0

本文将简要介绍如何使用Jungo公司的WinDriver工具快速开发PCI Express设备驱动,以及相关注意事项。本文所使用的的测试平台信息如下:

※操作系统:Win7 SP1 64bit

※驱动开发工具:WinDriver12.1

※应用程序开发工具:MSVS2012

※PCIe测试板卡:Lattice ECP5 Versa Board

※FPGA开发工具:Lattice Diamond 3.11

※PCIe参考设计:ThroughPut Gen1 Based on ECP5 Versa Board(见本文附件)

由于电脑上安装了Lattice提供的ThroughPut参考设计的驱动了,因此我们将PCIe的Device ID改为EC32(默认为EC30),改完之后,之前安装的驱动就不认识这个PCIe设备了。开机之后,系统也会提示驱动安装失败,设备管理器则将其放在了其他设备一栏中,如下图所示:
121112908752

然后,打开WinDriver,点击New Host Driver Project,进入选择器件界面:
121120922760

选中待开发驱动的设备,点击Generate .INF file

121128150972

选中自动安装INF文件,并点击Next,随后会弹出:

121136412579

点击始终安装此驱动程序软件,然后再回到设备管理器界面,可以发现驱动已经安装成功:
12120133927
此时的WinDriver开发界面如下图所示:
121210762925

然后点击BAR0,界面如下,我们可以在此添加BAR0范围内的相关寄存器:
121219578948
点击添加寄存器,界面如下,输入寄存器名称和Offset:
121227577868
点击OK后,添加成功,随后点击Project->Generate Code,或者点击图中红框框处:
121242733794

选择MS 2012(我的CPU是AMD的,所以选择的是AMD64),同时选择唤醒安装的IDE:
121251711474
随后界面如下:
12125952835

此时,会自动提示你关闭WinDriver,防止在运行MSVS编译后的应用程序时,与WinDriver产生资源冲突:
121307901767

直接编译MSVS中的Project:
1213168811
随后找到,生成的EXE文件,按照步骤,写SEG_LED寄存器的值为0000000C,成功后Versa板上的数码管显示数字1。
121325742427

驱动的发布稍微复杂一点,具体可参考 WinDriver UG的第十四章节。当然你还需要正式的License,尽量支持一下正版。
附件(本文使用的FPGA Project):http://www.pciee.com/download/PCIe_Throuput_Gen1x1.7z

原文转自:http://blog.chinaaet.com/justlxy/p/5100064256

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!