在dm3730的frame_copy函数中有:
src.addr_mode = OMAP_DMA_AMODE_POST_DOUBLE_INDEX;
src.addr = (Uns) Buffer_getUserPtr(hSrcBuf) + srcOffset;
src.elem_index = 1;
src.frame_index = (srcDim.lineLength – width * 2) + 1;
dst.addr_mode = OMAP_DMA_AMODE_POST_DOUBLE_INDEX;
dst.addr = (Uns) Buffer_getUserPtr(hDstBuf) + dstOffset;
dst.elem_index = 1;
dst.frame_index = (dstDim.lineLength – width * 2) + 1;
transParams.dataType = OMAP_DMA_DATA_TYPE_S32;
transParams.elemCount = width >> 1;
transParams.frameCount = height;
scpyParams.src = &src;
scpyParams.dst = &dst;
scpyParams.transfer = &transParams;
我仿照这写配置写了个sdma的测试程序,但是不怎么对,然后我看TRM里面也没有与这些相关参数的解释
如果我要用sdma拷贝分辨率为360×288的图像内容,这些参数怎么设置呢?????????
这是我下面的配置
src.elem_index = 1;
src.frame_index = 1;
dst.elem_index = 1;
dst.frame_index = 1;
transParams.elemCount = 360;
transParams.frameCount = 288;
我的配置对吗?????????????????????????????????????????????????????????????
map dog:
我现在sdma设置好了,但是我发现效率不行
比如拷贝360×288×2字节大小的内容,拷贝100次,用memcpy用时0.5秒,但是用sdma copy就用了1.3秒,效率比memcpy还低,请问是不是sdma哪里有什么问题
???????????????????????????????????????????
???????????????????????????????????????????
烦请回复!!!!!!!!!!!!
烦请回复!!!!!!!!!!!!
烦请回复!!!!!!!!!!!!
烦请回复!!!!!!!!!!!!
烦请回复!!!!!!!!!!!!
烦请回复!!!!!!!!!!!!