ran into a hard-to-find bug in the x-series DDK, you guys might want to correct.
in the routine:
void tCHInChDMAChannel::_config(nMDBG::tStatus2& status)
_readIdx = 0;
_writeIdx = 0;
there is one more line you need in there:
_lastwriteIdx = 0;
this doesn't cause a problem for any of the sample programs, since they only use tCHInChDMAChannel once and dispose of it. however if you start() the channel for a second time without doing a reset (to avoid a buffer re-allocation), the object will incorrectly report the number of bytes available.
Thanks for letting us know about this. According to the comments in that file, we expected to be able to stop the dma channel and start it back up.