利用Xilinx公司的ML505开发板上的“金手指”,完成与电脑主机之间的PCIE通信!

主要参考文档:XAPP1052  这个文档必须精读!

FPGA 这一端就直接调用IP核,在核程序的基础上稍加修改就可以使用;

上位机可以利用官方提供的驱动与界面:

     驱动是WDM生成的,有32K的数据限制,即每次最多只能传32K,根据协议理论上可以传8M;

     界面有两部分组成,一部分是VB写的界面,另一部分是VC写的DriverMgr,VB调用DriverMgr里面的函数,DriverMgr再去调用底层驱动;

我们现在用Windriver自己生成驱动,比WDM的更加简单方便,而且可以不拘束于它的限制,能够根据我们实际的需求进行设计,界面也用MFC设计。

在传输的过程中,我们遇到一个很奇怪的问题,就是FPGA这一端只要发带有“0x0a”的数据,上位机用fopen("***.dat",'a+');函数把收到的数据存在一个文件里,这时

数据文件里0a前面必定多出一个0d!!  其实在C语言中 0a是‘\n’(换行),而0d是'\r'(回车),用fopen语句会自动把0a变成0d0a!!!!! 改成fopen("***.dat",'ab+')就可以了!!

相关文章:

  • 2021-09-24
  • 2021-07-19
  • 2021-11-17
  • 2021-05-31
  • 2022-02-04
  • 2022-12-23
  • 2021-09-20
  • 2021-06-14
猜你喜欢
  • 2021-06-04
  • 2021-11-29
  • 2022-01-11
  • 2021-05-24
  • 2021-11-02
  • 2021-10-29
相关资源
相似解决方案