Hello all,
I am facing some problems while programming with DMA and GPT on the C5505 USB stick.
I am using the DMA to copy samples to and from AIC3204 over I2S. DMA ISR is used to manage the ping-pong buffering. The program just tries to read samples from input and then paly them back on the line out. This is working fine as a standalone program.
I am also trying to run a GPT (Timer0) with the above module which will give me periodic interrupts (I need a counter for time sync with some other hardware). The ISR for this GPT just increments a reference counter. I have observed a problem when I try to run the GPT code with the above DMA code.
The program runs well for a very short time (close to 1 sec), but after that one of the two ( DMA or GPT) stop responding. If the DMA is still running, the reference counter (GPT ISR) stops incrementing and if the GPT counter is going right, the DMA stops working. I figure this is some problem with conflict in the ISR of DMA and GPT. I have tried debugging by checking the values of the interrupt registers(IER0), and the interrupts are still enabled.
What is causing the interrupts to stop responding? Am I missing something in the configuration?
Any pointers would be very helpful.
Thanks,
Ramesh