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.

6678 pcie



您好,

我使用EVM6678L(PG1.0)+AMC转PCIe板卡+PC(xp)来实现主机与DSP间的通信,主要参考了mcsdk_2_00_07_19\tools\boot_loader\examples\pcie里的pciedemo.c的代码,并借助DirverStudio工具生成了xp的驱动文件。

在具体通信过程中,发现HAL_writeDMA和HAL_readDMA两个函数中存在数据读取不完整的情况(比如我每次写10帧数据到DDR3中,将DMA_TRANSFER_SIZE设置为一帧,调用10次HAL_writeDMA,然后再从DDR3中读取出来,但发现每帧后面的数据都是0,即EDMA没写完全,且每帧缺失的数据量都是一样的)。我以为DMA_TRANSFER_SIZE过大造成的,但将DMA_TRANSFER_SIZE降低为0x50000,上述情况依旧。

这个问题也是随机的,有的时候我重新加载一次驱动,也可能解决问题,但出错的情况较多。

然后我用Windriver工具生成驱动,在应用程序中改写pciedemo.c,发现也有类似的情况,即DMA_TRANSFER_SIZE到达一定数量会出错。