TI中文支持网
TI专业的中文技术问题搜集分享网站

关于TMS320C6657的PCIE发送数据

你好!

我目前正在实现6657DSP 评估板与xilinx kintex7 FPGA之间的PCIE连接,其中DSP作为Root Complex,FPGA作为End point。软件环境为CCS5.3。DSP上采用CCS5.3提供的关于pcie的例子工程(见附件)。FPGA端也采用xilinx公司提供的例程。

目前我们测试的情况如下:
1》DSP和K7 PCIE LINK没有问题
2》DSP可以读写K7的PCIE的配置空间
3》DSP可以修改K7的PCIE的配置空间
问题是:FPGA收不到DSP发送的memor write TLP,或者说dsp就没有发送TLP出来,因为我在FPGA端检测PCIE接口的tvalid信号就没有有效过。也就是说我对下面这段代码不太清楚。

for (i=0; i<PCIE_BUFSIZE_APP; i++)     {       *((volatile uint32_t *)pcieBase + i) = srcBuf[i];     }         /* Mark that the buffer is full, so EP can process it */     *((volatile uint32_t *)pcieBase + PCIE_BUFSIZE_APP) = PCIE_EXAMPLE_BUF_FULL;

只要往pcieBase这个地址上写数据,pcie外设就会自动将发送出去,是这样吗?觉得难以理解。

那我想知道pcie外设是如何检测pcieBase这个地址有新数据带来?新数据有多少?如何去触发发送一次TLP?

不好意思,问题描述得不是很清楚。希望进一步交流。谢谢

                                                                                                                  zhu

 

 

 

 

Andy Yin1:

收发数据时需要配置好in/out bound address transplation即收发地址映射关系,在发送时DSP侧想PCIe base address中写memory,PCIe硬件得到地址后会进行地址转换成PCIe总线上的地址,对端接收到地址后会进行地址转换映射到内部相应地址,之后把数据收下来。建议看一下PCIe的手册确认地址映射配置。

jason zhu:

回复 Andy Yin1:

你好,谢谢!问题已经解决!

还有一个问题:example.c发送出来的数据帧TLP的载荷仅为1DW,如何设置使得载荷为128字节?设置哪个寄存器呢?

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 关于TMS320C6657的PCIE发送数据
分享到: 更多 (0)