TIwilliam hill官网
直播中

郑涵

7年用户 237经验值
私信 关注
[问答]

通过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需要配置吗?

期待各位的答复!

回帖(4)

杨娟

2018-6-21 13:58:07
从电脑向DSP通过PCIe写数据,如你所述可以通过windriver写相应的驱动,如果是PC向DSP写数,是不可以用DSP的EDMA,不过我觉得可以反过来,DSP从PC进行读数,这样就可以用DSP的EDMA;PCIe的输入输出地址映射是肯定要配置的,你可以参考一下pdk下的linux pcie demo driver,如:
C:timcsdk_2_01_02_06toolsboot_loaderexamplespcielinux_host_loader
                                                                          

举报

郑涵

2018-6-21 14:17:13
引用: zbb9612 发表于 2018-6-21 13:58
从电脑向DSP通过PCIe写数据,如你所述可以通过windriver写相应的驱动,如果是PC向DSP写数,是不可以用DSP的EDMA,不过我觉得可以反过来,DSP从PC进行读数,这样就可以用DSP的EDMA;PCIe的输入输出地址映射是肯定要配置的,你可以参考一下pdk下的linux pcie demo driver,如:
C:timcsdk_2_01_02_06toolsboot_loaderexa ...

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 11
Interrupt 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吗?

谢谢!期待回复!
举报

陈艾惠

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

郑涵

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

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

更多回帖

发帖
×
20
完善资料,
赚取积分