你好!
我目前正在实现6657DSP 评估板与xilinx kintex7 FPGA之间的PCIE连接,其中DSP作为Root Complex,FPGA作为End point。软件环境为CCS5.3。DSP上采用CCS5.3提供的关于pcie的例子工程(见附件)。FPGA端也采用xilinx公司提供的例程。
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字节?设置哪个寄存器呢?
谢谢!