Hi,
Regarding your question "I have a problem with usb messages whose length is a multiple of 64, which is the maximum size of a usb fs packet for bulk out message", I suppose that this is a bug.
When the device transfers packet, each packet is 64 bytes, the last packet is less than 64 bytes,the packet with less than 64 bytes is treated as last bytes, the host will response with ACK handshake packet. But when the data size is exact multiple of 64 bytes, the device should add one packet with zero length data.
Hope it can help you
BR
XiangJun Rong