I'm using MQX 4.0.2 on a TWR-K60F120M, USB mass storage in device mode, with a TWR-SER2 for HS USB, compiled using IAR.
The problem I'm having is that certain packets on USB Bulk-In are giving a CRC failure. I connected the system to a PC running linux, and all seemed well. I combined the USB and NAND examples to create the equivalent of a flash drive. I can run fdisk and all is well. I then proceed to format a fat partition, and that is where I noticed problems occurring. The moment the FAT sectors are written, I see all kinds of CRC errors and the host is continually resetting the bus. This continues until I wipe the NAND to remove all that had been written (unplugging/plugging the USB cable don't fix it - the same data is going to be transferred).
I backed off a bit and removed NAND from the equation and forced the read command to fill the buffer with a fixed character. I can run dd against the device node and for most characters, it works flawlessly. However, there are some values that I can put in there that cause an invalid CRC on the Bulk-In data. For example, if I place 512 - 0x84's in the buffer, I can see the data go out properly (I see 512 correct bytes) when analyzed with a beagle 480, but the CRC is 0x9EF6 compared to the CRC calculated by my host of 0x9E76 (for the same transfer in a bulk-out direction). This CRC of course is invalid causing the host to not get the data.