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

通过PC机的DMA传输数据到c6678EVM

各位好,

       电脑是win7 64bit, c6678EVM通过AMC至PCIe适配卡插到电脑主板上的PCI槽中,现在项目中想实现的功能是:在电脑的内存中有一段大小约为6MB数据需要传输        到c6678的DDR3中,考虑到CPU占用问题,使用电脑的DMA进行传输,驱动是用windriver编写

        我的问题是:

                 1. 可以不用电脑的DMA,改用c6678的EDMA3进行传输吗?

                 2.配置电脑的DMA时,需要注意什么问题呢?目标地址是用DDR3的全局地址吗?

                 3.PCIe的inbound和outbound address translate registers需要配置吗?

期待各位的答复!

mike lee1:

回复 Andy Yin1:

Andy Yin1 ,你好。

我用windriver写好驱动后,调试时显示板卡的资源如下:

Vendor ID: 0x104C, Device ID: 0xB005 Location: Bus 0x1, Slot 0x0, Function 0x0 Memory range [BAR 0]: base 0xFE400000, size 0x100000 Memory range [BAR 1]: base 0xD1400000, size 0x80000 Memory range [BAR 2]: base 0xD1000000, size 0x400000 Memory range [BAR 3]: base 0xD0000000, size 0x1000000 Memory range [BAR 4]: base 0xD1490000, size 0x1000 Memory range [BAR 5]: base 0xD1480000, size 0x10000

Interrupt: IRQ 11Interrupt Options (supported interrupts): Message-Signaled Interrupt (MSI) Level-Sensitive Interrupt

对上面的显示有几点疑问:

1. BAR0并不是如PCIe user guide中说明的大小为4KB,这是为什么?

2. BAR0~5的值我是不是不能修改,只能通过Inbound transtrate寄存器进行重新映射?如果可以怎么修改呢?

3. PC和DSP传输数据时,使用DSP的EDMA3传输,RC和EP需要设置吗?分别是谁呢?是PC作为EP吗?

谢谢!期待回复!

fei lau:

您好,

最近我也在调试PC与DSP的PCIE通信,想请教一下,您最终实现的DMA通信是使用PC侧的DMA吗?还是使用DSP从PC侧读数据这种方式,此时DSP是作为RC端吗?地址的映射关系是怎么设置的呢?希望得到您的解答,谢谢~!

mike lee1:

回复 fei lau:

你好,

正如上面andy yin1回答的,我使用的是DSP从PC侧读数据,此时DSP我觉得应该是作为EP,地址的映射关系设置可以参考上面andy yin1提供的demo里面的设置。

赞(0)
未经允许不得转载:TI中文支持网 » 通过PC机的DMA传输数据到c6678EVM
分享到: 更多 (0)