使PCIE真正跑起来

学习PCIE也有两个月了,经过多次的失败,总算是实现了 xapp1052  和  xapp1030 里面的演示,但是我却
发现,对于如何把PCIE真正的用起来,我依然毫无头绪,脑子里有好多疑问:

1.就拿利用EDK实现的PCIE+DDR工程来说吧,pcie的地址是0x72e00000 ——0x72e0ffff,开了一个ipifbar0,地址
0x72e20000——0x72e2ffff,然后IPIFBAR2PCIBAR_0 = 0x00000000,PCIBAR2IPIFBAR_0 =0x74000000(DDR的
起始地址),那么我用dma传输数据时,就是在0x72e200000x74000000为基地址的两块地址之间传输么?

2.如果要将事先准备好的1K 数据通过PCIE传给PC,应该怎么操作呢?我的想法是把这些数据先写入0x74000000为基址
的地址中,然后用dma传输,但是在Xilinx SDK中,0x72e200000x74000000这两部分的地址中的数据都无法读取(其
它有些地址可读,如0x00000000),我觉得可能是一种保护吧,但是这样子我就不能验证我的想法了。

3. 对于Xilinx生成的PCIE核(如xapp1052),如果要使用的话,是必须要自己用C语言编写控制程序么?对于EDK的PCIE
工程(xapp1030),应该在SDK中编写C驱动就行了吧,还是说也需要另外编写应用程序?

    以上是一些关于PCIE我拿不准的地方,希望大家能够抽时间看看,给我一些提点,谢谢!!!

一见钟情 发表于10-15 11:44 浏览65535次
分享到:

已有1条评论

  • 粽子糖果
    粽子糖果 10-15 14:47

    可直接拿来用,只有Linux版本。
    1)将板卡插到PC中,开机
    2)下载bit流文件到FPGA,重启插着板卡的机器。用来烧写的PC和插板卡的PC不是同一台,笔记本装了ISE或Vivado都能烧写,插板卡必须是台式机。
    3)重启后加载驱动程序,源代码中有,在sPciDriver文件夹下。
    然后编程,C或C++,API在文档中有提到,头文件在源代码中有。
    PCIe传输功能是调用两个函数。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

一见钟情
一见钟情(大校)
金币:1529个|学分:3659个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号