PIC32MX USB zero-byte transfers
I'm trying to return a zero-byte packet to a USB host using a bulk endpoint on the PIC32MX; this is needed to terminate a multi-packet sequence that is a multiple of 64 bytes long. I think its working, but my usb driver isn't getting an EVENT_TRANSFER notification. In fact, I can see that the usb_device.c code isn't getting an interrupt at all. This makes scheduling the next transfer awkward as I'm trying to make everything interrupt-driven. I think its happening on OUT endpoints as well; if the host sends data that happens to be a multiple of 64 bytes, I don't see the zero-byte transfer that ends the sequence, which is what tells me that the host is done.
Does anyone know of a way around this? It looks like the hardware is doing the transfers but not posting an interrupt, which seems a strange thing to omit given that zero-length packets are a required feature.