我做的程序需要在Arm端memcopy一些数据,由于数据量比较大,所以想用EDMA来实现。
我在dvsdk中发现了edma的例程,貌似可以实现这样的功能,其路径为dvsdk_2_00_00_22/linuxu
tils_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 这些宏定义,这应该是内核版本不兼容吧,遇到这种情况改怎么办?