This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Trouble with usbd_hid_get_report_trigger on STM32F4

Hello
I am having some issues with usbd_hid_get_report_trigger on a STM3241G-EVAL board. If I write too much too fast it ends up looping in a hidden function inside USB_CM3.lib.

I have done some software usb tracing in Windows, and it looks that this happens when Windows encounter a USBD_STATUS_XACT_ERROR on the interrupt transfer, and Windows then issues an ABORT PIPE and then a RESET PIPE_AND_CLEAR STALL. USB_CM3 doesnt recover from this it seems.

My Endpoint and Report size is 64 bytes, and I have set polling to 1ms. This is the only adjustments I have made to the standard HID-example, and this results in the error. I dont encounter this error using reportsize of 1 byte and polling every ms.

Does anyone have a clue how to handle this? It is a bit hard to debug without USB_CM3 lib sources.

This is the function that keeps on looping in USB_CM3.lib
0x08002696 B198 CBZ r0,0x080026C0
0x08002698 8862 LDRH r2,[r4,#0x02]
0x0800269A 2A00 CMP r2,#0x00memcpy (0x08001874)
0x0800269C D1FB BNE 0x0800269614]

Call stack shows main and 0x08002698 from above.

Parents Reply Children
No data