2018-11-28 01:35 PM
I have an STM32F2 MCU acting as a USB CDC Device. When I stress-tested my communication code by sending data as fast as possible (i.e., as fast s the USB Host will allow), I discovered that data was being dropped. In particular, there would be 64 or 128 out of 2.7 million bytes missing.
Using a USB analyzer, I found that the missing bytes were lost because the USB device (i.e., the STM32F2 MCU) aborted a pipe.
The packet status reported by my USB analyzer was 0xC00100000
This status corresponds to an NTStatus reported by the Windows USB stack. From this page (https://msdn.microsoft.com/en-us/library/windows/hardware/ff539136(v=vs.85).aspx), the meaning of that status code is:
USBD_STATUS_CANCELED
0xC0010000
The USB stack reports this error whenever it completed a transfer because of an AbortPipe request from the client driver.
Does anyone know what this corresponds to on the STM32F2 MCU or USB middleware?
I'm using:
STM32F2 Hal v1.0.1 (25-March-2014)
USB CDC Middleware v2.0.0 (18-February-2014)
Thanks,
Richard