企业网站建设解决方案,wordpress搜索不了中文linux,开公众号,品牌网站建设 结构本原创教程由深圳市小眼睛科技有限公司创作#xff0c;版权归本公司所有#xff0c;如需转载#xff0c;需授权并注明出处#xff08;www.meyesemi.com) 紫光同创官方主推的是在linux系统下开发驱动和上层软件#xff0c;相应地#xff0c;官方提供了在linux一个基于GTK2…本原创教程由深圳市小眼睛科技有限公司创作版权归本公司所有如需转载需授权并注明出处www.meyesemi.com) 紫光同创官方主推的是在linux系统下开发驱动和上层软件相应地官方提供了在linux一个基于GTK2.0的PCIE测试平台该平台能够很好去操作官方生成的例程。需要特别注意的是该linux系统必须是物理机不能是虚拟机。开发使用linux系统开发者也许可以接受但是进一步开发提供给用户操作的软件要考虑到用户层面的时候无可厚非会必然选择Windows所以在Windows开发适配的PICE驱动是最佳选择。
官方也提供了一个Windows的驱动例程该例程能够完成PCIE的DMA读写操作和PIO内存读写操作但是该驱动并未完全适配IP生成的官方例程官方提供另一份的FPGA的工程与之适配。不过官方提供适配的FPGA工程并未完全公开提供适配的FPGA工程芯片型号为PG2L100H。
驱动不匹配官方IP自带生成例程的原因是该驱动不能够与IP例程完成DMA握手流程和指令不匹配但是可以对BAR0进行PIO读写操作。 官方提供的Windows驱动的DMA操作流程如下 但是生成IP自带的例程的DMA操作流程与之不同IP自带例程的DMA读写流程是
1bar1 0x100读写地址位宽read/write数据长度
2bar1 0x110内存低32位地址
3bar1 0x120内存高32位地址
由于流程和指令的不一致导致了官方提供的Windows驱动未能和官方PCIE IP生成的例程DMA机制握手成功。
此时要让他们成功握手通信两个选择一是改FPGA端工程二是改Windows驱动。对于刚入门的选手很明显是改驱动比改硬件简单和省时间。
改驱动很简单只有将上面的指令流程改成与IP生成例程相对应即可特别注意这里不是说原来的驱动有问题改动只是适配IP生成的FPGA端例程。改动如下 改完之后重新生成驱动这个编译生成使用的是Visual Studio 2022需要安装与版本对应的wdk库等编译有问题基本都是环境没配置好如数字签名等对于软件老手都是家常便饭了就不详说。再之后直接在bin目录进入Powershell/cmd。输入./pdma_rw.exe打印信息可以帮助我们如何进行指令操作。 将datafile4K.bin 的1024byte数据传输给FPGA再将FPGA的数据读回来写入datafile4K_recv.bin。 将datafile4K_recv.bin对比一下datafile4K.bin 可以发现读回来的数据是正确的。 使用指令对BAR0进行读写写入1234读回来也是1234write/read后面的0代表地址偏移量。
最后简单声明一下更改驱动只是适配紫光同创IP生成的例程把IP自带例程的DMA机制通信成功起来当然也可以去更改IP生成例程DMA的逻辑设计来适配原来的驱动。 盘古50K开发板|紫光同创PGL50H开发平台