ThierryNolf

ADC DAC Playback ping pong buffer problem after breakpoint

Discussion created by ThierryNolf on Jan 11, 2016
Latest reply on Mar 8, 2016 by SachinV

Hi All,

 

I'm using the adc_dac_playback example on the EZ-589 kit.

The only thing I changed in the code is replace the line "if ((AdcCount >CALLBACK_COUNT) || (DacCount >CALLBACK_COUNT))" by a "if(0)" line to make the code run for a longer time.

 

Now, if I stop the code using a breakpoint, or pressing the pause button, and restart it afterwards, the output buffer is distorted in half of the cases.

 

I have traced the problem to the point that probably the synchronisation in the ping-pong system goes wrong, so the buffer that is submit in the callback function is actually the buffer that is used to fill the data from the sport.  This is a guess because there is no way to know what buffers are used at a certain point or if buffers are filled or not if a callback is registered.  Also stop the I/O DMA in the target settings doesn't solve this synchronisation problem.

 

How can I fix this, and be sure the synchronisation is OK after a breakpoint ?

If this cannot be solved, how can I use the drivers in debug mode ?

 

Best regards,

Thierry

Outcomes