在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3018|回复: 2

[求助] 请教PCIE_DMA的问题

[复制链接]
发表于 2011-8-9 14:15:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
     MPC8377通过PCIE连接一个FPGA,不使用PCIE_DMA方式进行数据读写(即单个数据操作)时,数据正确;如果使用PCIE_DMA方式进行数据读写时,写入正常,读取不正常。    使用PCIE_DMA方式读取数据过程为:MPC8377向FPGA发送读数据请求事务包(比如请求数据长度16),FPGA向MPC8377返回带有16个数据的完成包。
    过程结束后,MPC8377相关寄存器如下:

PEX_RDMA_STAT = 0x02,

DMA Descriptor.PEX error = 0,

DMA Descriptor.Bridge error = 0,

DMA Descriptor.CSB error = 0,

DMA Descriptor.Descriptor error = 0,

DMA Descriptor.Done = 1,
    说明MPC8377完成了DMA的传输,但是在DMA Descriptor指定的目的地址内,并没有FPGA返回的数据。
    请问这是什么原因造成的?数据到哪里去了?


    另外:如果希望使用FPGA主动发送数据,即FPGA发起PCIE的数据写事务包,那么FPGA事务包中的地址如何确定?
    1.通过读取MPC8377的PCI配置空间的基地址寄存器;
    2.由MPC8377写到FPGA内部的一个专用寄存器;
    例如MPC8377的DDR2地址空间为0x0~0x1fffffff、PCI配置空间中的基地址寄存器为0x40000000,MPC8377希望FPGA将数据直接写入到0x03000000中,FPGA的PCIE写事务包中的地址应该填入什么:0x03000000还是0x43000000。还是需要另外配置地址空间?

 谢谢!
发表于 2011-8-11 18:06:01 | 显示全部楼层
FPGA应该已将16个数据发过去了,但DMA是如何处理接收来的数据的?处理1个数据或16个数据有何不同?你怎么查看读回来的数据?(DMA向FPGA发送的DW中的地址只是向FPGA读数或写数的地址,与DMA这边无关),

0x43000000
基地址加偏移地址,
但CPU+FPGA模式,常见的仍是CPU作为MASTER
发表于 2011-8-23 16:39:17 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 07:33 , Processed in 0.022536 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表