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

6678中CSL的EDMA例程问题

最近在调6678的CSL中edma的测试例程(D:\ccs5\pdk_C6678_1_0_0_9_beta2\packages\ti\csl\example\edma),发现这个程序无法触发edma数据搬运。检查后发现这个程序确实有问题,如下:

/* Trigger channel */
    CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);

    regionIntr.region = CSL_EDMA3_REGION_GLOBAL;
    regionIntr.intr   = 0;
    regionIntr.intrh  = 0;

    /* Poll on IPR bit 0 */
    do {
        CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,&regionIntr);
    } while (!(regionIntr.intr & 0x1));

do-while循环里应该加上

   do {

/* Trigger channel */
    CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);
        CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,&regionIntr);
    } while (!(regionIntr.intr & 0x1));

因为他是A-SYNC方式的数据搬运,所以要触发256(ACNT=256,BCNT=CCNT=1,TCINTEN=1)次才能产生中断,即跳出该循环,但是改了之后还是不行,根本没法触发edma数据搬运,请问这是为什么,急切需要高手解决,谢谢!

我单步跟踪的,感觉寄存器没有错误啊,EMR寄存器也没有错误!

Mark:

回复 Andy Yin1:

是我疏忽看错了,谢谢你的提醒!

赞(0)
未经允许不得转载:TI中文支持网 » 6678中CSL的EDMA例程问题
分享到: 更多 (0)