In my application, I'm doing real-time playing of mp3 audio from a memory stick using a VDK application and the adi mp3 decoder library. I start off by using the ID3 parser provided with the mp3 decoder example and start playing the file. Now, if I let the file play all the way through uninterrupted to the end, it will work fine. I have a feature that allows the user to seek to a specific part in the file. I'm accomplishing this with the MP3_ff_rewind module provided in the mp3 decoder example. The seeking works great, but I've noticed that if I start doing some seeking in the file and then let the file play until the end, I seem to get a Kernel Panic when it gets close to the end of the file (around the 97-98% mark). My call stack is attached. I'm using 3 threads, one for the user interface, one for the mounting of the USB, and one for the reading of the mp3 data from the USB (which is the highest priority). The Kernel Panic is being thrown after the call to:
which is in this call:
void OTG_Device_To_Host_TransferComplete(ADI_USB_DEV_DEF *pDevice, void *pBuf)
in the file adi_usb_msd_host_support.c
Again, I have no problems seeking in any other parts of the file, I only get the Kernel Panic at the end of the file every time (this can't be coincidence). Any thoughts or comments would be appreciated. Thanks!