Thank you. I'm sure you can appreciate that when there's so little documentation, having extraneous things thrown into the examples really doesn't help.
The reason I asked is that I noticed that many times when I pause the debugger I find it's waiting in the fsl_i2s_dma driver. I added a GPIO flag to the driver's DMA interrupt callback and this is what I get. The top channel is the I2S bus. The bottom channel is high when the ISR is active.
All the system should be doing is sending a burst of I2S data 240 times a second. When the DMA transfer completes, though, the driver hangs for 1.45 ms. This happens in I2S_DMACallback() when it uses I2S_EmptyTxFifo(). It goes through its maximum timeout delay waiting for the TX FIFO empty flag. This happens in interrupt context, so you can imagine what it's doing to the performance of the system to have it spinning in an ISR for 30% of the time.
What gives?
