平台:DM8168 使用DVRRDK_2.0,在使用SWOSD_TI_algMemcpy2D()函数拷贝数据到DSP的L2SARM时,发现当源地址是linux下申请的地址时拷贝数据不会发生错误。当源地址为DSP下的地址时,拷贝数据有少量的数据没有拷贝完全(),使用memcpy函数对比测试发现的确是dma的传输问题。
请问我应该从哪方面考虑能有效的解决这个问题,这个与cache有关系不,我仅仅是从片外拷贝到L2中。
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 使用DVRRDK_2.0,在使用SWOSD_TI_algMemcpy2D()函数拷贝数据到DSP的L2SARM时,发现当源地址是linux下申请的地址时拷贝数据不会发生错误。当源地址为DSP下的地址时,拷贝数据有少量的数据没有拷贝完全(),使用memcpy函数对比测试发现的确是dma的传输问题。
请问我应该从哪方面考虑能有效的解决这个问题,这个与cache有关系不,我仅仅是从片外拷贝到L2中。
很抱歉,请注意DM8168 DVR RDK是第三方公司udworks的产品,不是TI的资源,所以是第三方公司做支持。在以下链接中查看:www.udworks.com/.../sub03.php
我们这里使用的是TI的DVSDK:www.ti.com/.../linuxezsdk-davinci
我的建议:从你的描述看,目的地址应该都是DSP的L2SARM,源地址是片外,从Linux申请地址没问题,从DSP申请地址有问题,那么应该和Cache没关系。
不知你在Linux OS下操作DSP资源,使用的是什么方式?去检查一下SWOSD_TI_algMemcpy2D()函数适用范围能否适用DSP片外资源。