RNDIS: Does not work correctly when ported to stm32cubemx libraries.
Hello1024 opened this issue · comments
After very carefully migrating usbd_rndis_core.c
to use the new API's (eg. mapping DCD_EP_PrepareRx
to USBD_LL_PrepareReceive
), I can report that the resulting code does not work.
For reference, see my changes here:
Hello1024@15b3818
The device enumerates fine, and control messages seem to be sent fine (the mac address is discovered by the host for example).
Actual data messages seem to fail though. A USB trace shows that after every SOF, a BULK IN packet is created on RNDIS_NOTIFICATION_IN_EP
, but never followed up with an actual data packet, which is a usb protocol error in both linux and windows. Both retry thousands of times per second, but never get anywhere.
I haven't managed to successfully debug it yet. The device isn't locking up or anything, because it still responds to other message types.
Correction...
It works fine if you don't change the endpoint numbering!