Hello,
I'm using DMA to transfer data from McBSP receive register to internal RAM(L7 SARAM). In the McBSP ISR (which is generated by the new frame sync pulse), the DMA channel is reset to start the new transfer. DMA ISR is triggered once all the data are transferred from McBSP DRR to the internal RAM buffer.
So, ideally, both the ISR's should execute same number of times in a particular period. But the DMA ISR is executing less number of times than the McBSP ISR when there are other process running in CPU. If I disable all the other functionalities and just run the data receive part, both the ISR's are running same number of times.
From the above behaviour, it seems that, the DMA is stalled at some instances because of the conflict with CPU and some interrupts are missed. L7 SARAM contains only the DMA data receive buffer and no other data. The datasheet and the tagged post explains that CPU accesses on interfaces other than L7 SARAM interface should not cause conflict with the DMA (which only accesses PF3 I/F and L7 I/F).
Can someone help me understand why is this happening and if I'm missing anything..!?
Thank you,
Shivananda Bairy