大家好:
我想请教下关于DM8168通过PCIe传输视频数据到C6678的问题。
现在的情况是这样的:首先DM8168的A8核通过PCIe将视频数据传输到C6678进行sobel处理,处理后的结果存放在DDR中,数据处理完成后,再通过PCIe将数据传回DM8168。
现在的问题是我想让PCIe的读和写同时进行,也就是在发送图像数据到C6678的同时,就接收C6678发送回来的数据。请问各位这种想法是否可行?如果可行的话PCIe应该重新怎样配置?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好:
我想请教下关于DM8168通过PCIe传输视频数据到C6678的问题。
现在的情况是这样的:首先DM8168的A8核通过PCIe将视频数据传输到C6678进行sobel处理,处理后的结果存放在DDR中,数据处理完成后,再通过PCIe将数据传回DM8168。
现在的问题是我想让PCIe的读和写同时进行,也就是在发送图像数据到C6678的同时,就接收C6678发送回来的数据。请问各位这种想法是否可行?如果可行的话PCIe应该重新怎样配置?
谢谢!
您好,很高兴得到您的回复。现在我遇到的问题是这样的(我在做一个DM8168与C6678通过PCIe传输视频帧通信的项目):
现在的模式是这样的:PCIe是由DM8168上的A8核控制的,当A8向C6678发送数据的时候,PCIe会调用函数HAL_writeDMA(phys, DDR_START_1, DMA_TRANSFER_SIZE, 1),发送完成后会发送一个中断通知对方iowrite32(1, ptrReg + LEGACY_A_IRQ_STATUS_RAW/4);当C6678收到这个中断后会执行相应的处理,处理完成后会发送中断通知A8将数据取回去*((uint32_t *)PCIE_EP_IRQ_SET) = 0x1;当A8核检测到这个中断后PCIe会调用函数HAL_readDMA(DDR_START_2, phys, DMA_TRANSFER_SIZE, 1)将数据取走。
那么在以上模式中,不是边读边写的。因为当PCIe将数据取走的过程中,PCIe并没有向C6678传输数据啊,这样就造成了时间的浪费。所以既然PCIe可以全双工,那么我可不可以在PCIe取走当前帧数据的同时将下一帧数据通过PCIe传给C6678?请问您有没有什么好的建议帮我实现这个功能?
我是个初学者,期待您的指教,谢谢。