Hi,
There is a bug in StarterWare Version 02.00.00.06 usb code.
The bug causes that it cannot correctly process the data size is multiple 64 bytes. When the host sends the data through endpoint 0, if the data size is multiple 64 bytes, the currnt code in usbdenum.c cannot prrocess it properly.
//
// If there we not more that EP0_MAX_PACKET_SIZE or more bytes
// remaining then this transfer is complete. If there were exactly
// EP0_MAX_PACKET_SIZE remaining then there still needs to be
// null packet sent before this is complete.
//
if(pDevInstance->ulEP0DataRemain < EP0_MAX_PACKET_SIZE) / /this is wrong,
{
}
//Should be changed as:
if(pDevInstance->ulEP0DataRemain <= EP0_MAX_PACKET_SIZE)
{
}