My application is supposed to receive a 64 byte packet on EP0 in the form of a SET REPORT. There is code in usb_framework.c in USB_Control_Service() for class requests with non-zero size that calls _usb_device_recv_data(). However, when this function is called, my data buffer is not updated. I added code to call _usb_device_get_transfer_status() after _usb_device_recv_data() and find that this function returns USB_STATUS_TRANSFER_IN_PROGRESS indefinitely.
Am I missing a call to another function to service the USB or perhaps there is something else I am missing?
Any help will be greatly appreciated.