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

tcp3d到EDMA中断问题

任务是循环使用两个tcp3d译两个码块。在时刻a和b分别启动两个TCP3D译码,译码完成后通过edma传输结果并产生中断,如果在中断处加一个断点,则每次循环都可以得到正确的结果。但是拿去断点,则只进入中断一次(应该是第一个tcp3d在edma传输后触发的),但是第二个tcp3d在edma传输后并不能进入到edma中断,此时查看EDMA的IPR寄存器发现,相关的pending置位。这样下一次循环时,就连中断也进不去了。请问这是什么原因?谢谢了!

Andy Yin1:

首先确认相应EDMA Channel的IPR确实置位,然后在中断服务函数中需要情CPINTC system interrupt,可以调用CSL_CPINTC_clearSysInterrupt,然后清IPR,保证下一次中断事件被响应。

John:

回复 Andy Yin1:

ok, 现在是另外一个问题,就是能进中断,但是IPR和IPRH的都为0,没有置位。按理说没有置位,应该不会进入到中断里来的。另外,中断ISR是通过EventCombiner_dispatchPlug(eventId, ISR, hostIntr[dspCoreID], TRUE)注册的。另外,中断ISR通过CpIntc_dispatchPlug 和 EventCombiner_dispatchPlug注册有什么区别?

John:

回复 Andy Yin1:

确实是进入到了中断服务程序,在该服务程序中加个while循环一直读IPR、IPRH都为0。

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