I'm trying to read data from GPIF and send to host through bulk in endpoint. However ,I found that the bulk in packet size needs to be multiple of 4 bytes, i.e. 3 bytes will result a zero length packet and 5 bytes will result a 4 bytes packet. But the bulk out packet size is actual as that sent from host (PC). Why?
Seems that the issue is from GPIF side. When reading 3 bytes from GPIF, the GPIF producer buffer is empty, so that the bulk in packet is zero length. So my question becomes why the data count of GPIF producer buffer needs to be 4 bytes aligned.