你好,最近被一个EDMA相关的问题困扰多时,请各路大侠帮忙分析一下,具体情况如下:
EDMA通过事件触发模式,自动去读取McBSP的DRR里面的数据,刚开始时,EDMA工作是正常的,但是,经过一段短暂的时间(没有什么规律的),突然EDMA就没有进行数据的传输了。出现该现象后,查看McBSP的SPCR寄存器的
RFULL | RRDY | RRST |
三个标记,均为1,说明McBSP是存在数据,并且向EDMA触发了接收事件,但是,EDMA并没有进行数据的读取。
请问该问题应该怎样分析原因,有没有相关的案例或者文档,提供参考一下!谢谢!!!
Shine:
请问EDMA中断处理函数是否按照18.2.9.2 EDMA3 Interrupt Servicing上的步骤?
www.ti.com/…/spruh77c.pdf
user4755476:
回复 Shine:
是按照技术手册上的步骤实现ISR的!谢谢!
user4755476:
回复 Shine:
EDMA不工作后,可以看到IPR的状态为零,说明那是确实也没有Interrupt Pending。
Tony Tang:
看一EDMA的EMR寄存器,看是不是有事件丢失,导致EDMA不再响应。
另外尽量把McBSP的FIFO用起来,有助于消除这种问题的发生。
user4755476:
回复 Tony Tang:
你好,有使用McBSP的FIFO的例子,提供参考一下吗?我按照技术手册的说明,使用RFIFO时,发现EDMA的Buffer里面只能获取取到第一个数据,后面就好像没有数据更新了!另外,使用RFIFO时,EDMA是读取RBUF的数据,还是读取DRR里面的数据呢?从DRR里面看,McBSP是有接收到数据的,就是EDMA好像只拷贝了第一个数据就停止了一样!