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.

Edma3_CacheFlush和Edma3_CacheInvalidate总是失败

Other Parts Discussed in Thread: SYSBIOS

EDMA3传输数据总是达不到理论值,找原因找了几天都没有眉目,目前测试到Edma3_CacheFlush和Edma3_CacheInvalidate总是失败,想先解决这个问题,请问使用Edma3_CacheFlush和Edma3_CacheInvalidate需要加什么特殊的头文件或者在.CFG里加什么特殊的包吗?我看Edma3_CacheFlush和Edma3_CacheInvalidate是定义在bios6_edma3_drv_sample.h里的,我的头文件已经加了:#include <ti/sdo/edma3/drv/sample/bios6_edma3_drv_sample.h>并且右键选择Edma3_CacheFlush和Edma3_CacheInvalidate是可以打开定义的,在.CFG里边包含了var Cache = xdc.useModule('ti.sysbios.hal.Cache');还需要其他东西吗?或者我使用方法有问题,我是按照C:\ti\edma3_lld_2_12_05_30E\examples\edma3_driver\src里边dma_test.c的代码来使用的,如下:

        if (edmaResult == EDMA3_DRV_SOK)
        {
            edmaResult = Edma3_CacheFlush((uint32_t)s_addr, MAX_ACOUNT);
            if(edmaResult != EDMA3_DRV_SOK)
            {
                platform_write("Edma3_CacheFlush failed!\n");
            }
        }

        //Invalidate the Destination Buffer
        edmaResult = Edma3_CacheInvalidate((uint32_t)d_addr, MAX_ACOUNT);
            if(edmaResult != EDMA3_DRV_SOK)
            {
                platform_write("Edma3_CacheInvalidate failed!\n");
            }

有人遇到相同的问题吗?Edma3_CacheFlush和Edma3_CacheInvalidate 很不好搜索,在www.ti.com/.../spru609b.pdf