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 M3 EDMA3



各位专家可否给我一个在dm8168平台上,hdvpss那个M3调用EDMA3搬移数据的程序示例?小弟实在不解,怎样在c程序中去直接配置寄存器来使EDMA3工作!在此先谢谢各位了!!!

  • EDMA可以通过M3调用,和HDVPSS没什么关系。

    在EDMA库的目录下有如何使用EDMA的C程序例子(edma3lld/edma3_lld_XX_XX_XX_XX/examples/edma3_driver/src)

    在下面目录下还有关于EDMA API的说明文档

    (edma3lld/edma3_lld_XX_XX_XX_XX/packages/ti/sdo/edma3/drv/docs)

  • 首先,感谢您的回复。我当前是在通过改写HDVPSS中的chains示例,完成捕获视频显示视频的工作。就是通过gmake -s chains 生成.xem3文件,在ccs上运行该.xem3文件达到视频捕获与显示工作。我想用edma完成捕获的两路两帧数据替换合成为一帧数据的工作,也就是说想用那种直接配置寄存器的方法,上面您给我的那种是用驱动的方式吧?可否提供这种直接配置寄存器的方法的示例程序呢?非常感谢!

  • 在开发包里没有直接配置寄存器的方法的示例程序。另外,运行HDVPSS中的实例,仍然可以使用驱动的方式调用EDMA。

  • 用直接配置寄存器的方式对我现在将是最方便最快的,但是直接配置寄存器的方式存在两个问题,第一,在m3中的edma3 的base address是什么?第二,我该在其中怎么样直接操作地址号进行赋值操作?如向0x49000000中赋值0,我现在没办法直接操作这个地址号,一用地址号就出错!!

  • 我在hdvpss的包中去找edma映射的地址,可是在整个hdvpss中只有vpdma,没有edma的字样。给我的感觉hdvpss这个子系统数据搬移用的是它自己的vpdma,不用外面的edma?还是在hdvpss中,edma被映射成了vpdma?但是vpdma的形式跟edma的形式完全不一样呀!!!

    烦请各位专家告诉我,

    1、hdvpss是不是完成数据搬移时用的是自己的vpdma,而不用edma?

    2、hdvpss它内部的资源可以被a8调用,但是它不可以反过来调用hdvpss外面的edma3?

     

    如果只能用vpdma,这个vpdma改怎么用?没有相关文档呀!!

     

  • 您好,HDVPSS是用VPDMA来完成数据搬移的。VPDMA是专供HDVPSS使用的,并没有开放的接口供使用。如果需要使用DMA,可以通过M3或者A8来调用EDMA来完成数据搬移。

  • 非常感谢您的回复!

    因为我在hdvpss中的chain例子中改写的程序,之所以一直没有按您说的用edma3_lld,是因为不清楚怎么用m3调用edma的drviver。

    另外,如果要是用driver的方式可行,我直接配置寄存器的方式也一定可行,只要知道edma在m3中的edma3 base address就可以了,我不需要引用任何头文件和驱动程序。可是一直就有找到这个edma3 base address。

    请问如果向您说的用edma3_lld,用edma的driver 和rm,我该怎么把这些导入到我的程序中以便可以使用它的函数呢?

    非常感谢您的帮助!!

  • 你好,请问你现在知道如何直接配置edma3的寄存器了吗,我往以0x49000000为基地址的寄存器里写东西,写不进去啊,我是在linux下用CCS5测试的。另外,请问edma3lld/edma3_lld_XX_XX_XX_XX/examples/edma3_driver/src的例子都是针对DSP的吧。