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

在DM6446上Arm端使用EDMA

我做的程序需要在Arm端memcopy一些数据,由于数据量比较大,所以想用EDMA来实现。

我在dvsdk中发现了edma的例程,貌似可以实现这样的功能,其路径为dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma

修改了其目录下的Rules.make文件,主要是修改了编译器路径和内核路径,运行make,出现了下面的错误

/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:207: error: ‘EDMA_CONT_PARAMS_ANY’ undeclared (first use in this function)
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:207: error: (Each undeclared identifier is reported only once
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:207: error: for each function it appears in.)
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:212: error: ‘EDMA_CONT_PARAMS_FIXED_EXACT’ undeclared (first use in this function)
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:217: error: ‘EDMA_CONT_PARAMS_FIXED_NOT_EXACT’ undeclared (first use in this function)
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:242: error: ‘EDMA_TCC_SYMM’ undeclared (first use in this function)
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:253: warning: implicit declaration of function ‘davinci_request_params’
/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.c:286: warning: implicit declaration of function ‘davinci_get_param’
make[4]: *** [/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module/edmak.o] Error 1
make[3]: *** [_module_/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module] Error 2
make[3]: Leaving directory `/home/davinci/dm6446/linux-2.6.18_pro500'
make[2]: *** [release] Error 2
make[2]: Leaving directory `/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src/module'
make[1]: *** [module] Error 2
make[1]: Leaving directory `/home/davinci/dm6446/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma/src'
make: *** [src] Error 2

然后去内核代码中查看edma相关的文件,结果其中并没有EDMA_CONT_PARAMS_ANY EDMA_TCC_SYMM 这些宏定义,这应该是内核版本不兼容吧,遇到这种情况改怎么办?

Tuff Li:

内核和Linuxutils EDMA不匹配,建议使用配套的内核和DVSDK

请从如下地址下载:

software-dl.ti.com/…/index_FDS.html

chuan wang:

回复 Tuff Li:

DVSDK和LSP都是在这个页面下载的,内核版本2.6.18,dvsdk版本2_00_00_22,linuxutils版本2_23_01,应该没错啊

tan yb:

楼主你的问题解决了吗, 我最近也碰到和你一样的问题, 想通过EDMA来实现arm端的大数据量的memcpy。我想请问你一下,你是怎么在你的应用程序中调用dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/edma提供的相关EDMA接口函数的。

tan yb:

回复 Tuff Li:

Tuff Li:

      你好, 我想请问一下,DVSDK的 Edma能在arm端使用吗?要是能,该怎么配置? 希望能得到你的帮助。

赞(0)
未经允许不得转载:TI中文支持网 » 在DM6446上Arm端使用EDMA
分享到: 更多 (0)