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

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到达一定数量会出错。

lucky2:

您好。请问你参考Windriver生成的驱动,改写pciedemo.c后,能正常通信吗?能否留个联系qq或邮箱,交流请教下。谢谢

yong xu1:

回复 lucky2:

参考我另外的帖子:PCIe启动过程中C6678程序加载

fei lau:

您好

请教一下,您实现的DMA通信是使用的PC侧的DMA还是使用的DSP侧的EDMA模块?如果使用DSP的EDMA是不是需要将DSP设置为RC?谢谢!

yong xu1:

回复 fei lau:

使用Outbound方式,即DSP端的EDMA模块! DSP作为EP,主机作为RC!参考pciedemo.c

赞(0)
未经允许不得转载:TI中文支持网 » 6678 pcie
分享到: 更多 (0)