各位专家可否给我一个在dm8168平台上,hdvpss那个M3调用EDMA3搬移数据的程序示例?小弟实在不解,怎样在c程序中去直接配置寄存器来使EDMA3工作!在此先谢谢各位了!!!
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.
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的包中去找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,我该怎么把这些导入到我的程序中以便可以使用它的函数呢?
非常感谢您的帮助!!