目录

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

目录

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

本文将简要介绍如何使用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设备了。开机之后,系统也会提示驱动安装失败,设备管理器则将其放在了其他设备一栏中,如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/1f11f400391279e921c244821714acae.png

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

https://i-blog.csdnimg.cn/blog_migrate/df6025388ad46877407af52e2ce99d5b.png

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

https://i-blog.csdnimg.cn/blog_migrate/fa026467e0068b27f776136ccdb3c3eb.png

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

https://i-blog.csdnimg.cn/blog_migrate/83a15e9df7c3a4f84ab48ce742c52686.png

点击始终安装此驱动程序软件,然后再回到设备管理器界面,可以发现驱动已经安装成功:

https://i-blog.csdnimg.cn/blog_migrate/57230f7e76f8e75689eaa43f9cb7bd78.png

此时的WinDriver开发界面如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/9b9b9bd94c7bc02cb0a683eed0f82077.png

然后点击BAR0,界面如下,我们可以在此添加BAR0范围内的相关寄存器:

https://i-blog.csdnimg.cn/blog_migrate/28f13aa595642cc19c23de6365674e1d.png

点击添加寄存器,界面如下,输入寄存器名称和Offset:

https://i-blog.csdnimg.cn/blog_migrate/3bc17b1c9e1b71669e6e5dc1e7e82032.png

点击OK后,添加成功,随后点击Project->Generate Code,或者点击图中红框框处:

https://i-blog.csdnimg.cn/blog_migrate/72b6d6449ec283667cd9ab65b58a156f.png

选择MS 2012(我的CPU是AMD的,所以选择的是AMD64),同时选择唤醒安装的IDE:

https://i-blog.csdnimg.cn/blog_migrate/0806077b37256abf6dcdca6bec7582af.png

随后界面如下:

https://i-blog.csdnimg.cn/blog_migrate/b911ef8b37b99f1f9410f577bf4762c5.png

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

https://i-blog.csdnimg.cn/blog_migrate/726915698d5ef18cff030c8db4ffb151.png

直接编译MSVS中的Project:

https://i-blog.csdnimg.cn/blog_migrate/f2ae17f06090511f78c15d101ca96086.png

随后找到,生成的EXE文件,按照步骤,写SEG_LED寄存器的值为0000000C,成功后Versa板上的数码管显示数字1。

https://i-blog.csdnimg.cn/blog_migrate/7f27c399a052fa09ced8ea8f618c08db.png

驱动的发布稍微复杂一点,具体可参考 的第十四章节。当然你还需要正式的License,尽量支持一下正版。

附件(本文使用的FPGA Project): https://i-blog.csdnimg.cn/blog_migrate/91e4f526316ca238b2d13da57a5504f3.gif

注:原文最早发表于本人的ChinaAET博客( )