各位专家好!
我将C6678自带的EDMA程序修改成事件触发以后,在线仿真的时候程序运行到下面这个循环处以后就一直在这个循环里循环,请问是什么原因呢?这个循环语句是参考程序自带的不是我添加的,我用手动触发的时候,人为的给定了一个数组作为源数据时,程序可以实现数据搬移,但改为事件触发以后,由于需要由外部事件自动触发,且从外设读数据,所以在线仿真的时候是没有源数据的,而且EDMA也没有启动,但这个时候就出现了上面提到的问题。另外,参考程序里给的这个循环语句有什么作用呢?非常感谢!
/* Poll on IPR bit 0*/
do {
CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,®ionIntr);
} while (!(regionIntr.intr & 0x1));
此外,程序里还有下面这个语句,这个两个循环放在一起有什么作用?谢谢!
/* Poll on IPR bit 2 */
do {
CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,®ionIntr);
} while (!(regionIntr.intr & 0x2));