We've developed a custom hardware platform using the K26 processor. UART0 is used as debug console and connects using FTDI-USB to the PC. We have an SDIO switch that can switch to SD card and to an 8 GB e.MMC chip, the latter is selected for now.
The application I'm debugging is based on the USB MSC / CDC uart example from SDK 2.1 (this is a seperate USB connection from the UART0 FTDI debug connection).
All is working fine except the e.MMC transfer speed is much lower than we've reached on an SD card, even when creating the read buffer as large as the available RAM lets me and switching to HS clock speed. Any tips here are welcome.
The actual problem I'd like to post here though is that after some file transfers on USB (from Windows 7 64-bit) and / or after ejecting the e.MMC disk, the UART stops being responsive. I also have the Kinetis transmit a battery level every 5 seconds, which also stops. Any characters sent or received does not trigger the USB_DeviceCdcVcomCallback function. Disconnecting & re-connecting the virtual terminal (Terraterm) does trigger this callback but again, no character IO is handled.
The problem is not always but can be re-produced with relative ease.
Side effect that I noticed: although Windows tells me the e.MMC device can be removed safely, still it is accessible in Windows Explorer and any e.MMC Explorer window open at the time the eject is done is not closed like it is done with a 'regular' USB memory stick.