USB-CDC demo hangs on an STM32F303
Posted: Thu May 09, 2013 10:24 pm
Running the demo in testhal/STM32F30x/USB_CDC from SVN revision 5693 on a STM32F3DISCOVERY board, the USB serial driver hangs while transmitting data.
I've used usbmon on Linux and Virtual USB Analyze to see what's happening, and it appears the transactions aren't being completed correctly. I've looked through the datasheet and usb.c/usb_serial.c/etc., but I have not been able to find the problem.
Here's a screenshot:

In this capture, I connected using minicom, typed 'info', got a response, then typed 'help', and the connection hung. The device will not respond until I disconnect and reconnect. The red bar and errors happen when disconnecting.
Here's the data from usbmon:
I've used usbmon on Linux and Virtual USB Analyze to see what's happening, and it appears the transactions aren't being completed correctly. I've looked through the datasheet and usb.c/usb_serial.c/etc., but I have not been able to find the problem.
Here's a screenshot:

In this capture, I connected using minicom, typed 'info', got a response, then typed 'help', and the connection hung. The device will not respond until I disconnect and reconnect. The red bar and errors happen when disconnecting.
Here's the data from usbmon:
Code: Select all
ffff8800da112480 3493345390 S Ii:2:038:2 -115:128 8 <
ffff8800364dd6c0 3493345466 S Co:2:038:0 s 21 22 0003 0000 0000 0
ffff8800364dd6c0 3493356309 C Co:2:038:0 0 0
ffff8800da112cc0 3493356384 S Bi:2:038:1 -115 128 <
ffff8800da112840 3493356402 S Bi:2:038:1 -115 128 <
ffff8800da112b40 3493356414 S Bi:2:038:1 -115 128 <
ffff8800da112900 3493356427 S Bi:2:038:1 -115 128 <
ffff8800da112d80 3493356439 S Bi:2:038:1 -115 128 <
ffff8800da1120c0 3493356452 S Bi:2:038:1 -115 128 <
ffff8800da112f00 3493356465 S Bi:2:038:1 -115 128 <
ffff8800da112300 3493356477 S Bi:2:038:1 -115 128 <
ffff8800da112a80 3493356489 S Bi:2:038:1 -115 128 <
ffff8800da112000 3493356502 S Bi:2:038:1 -115 128 <
ffff8800da112540 3493356514 S Bi:2:038:1 -115 128 <
ffff8800da112c00 3493356526 S Bi:2:038:1 -115 128 <
ffff8800da1129c0 3493356538 S Bi:2:038:1 -115 128 <
ffff8800da112600 3493356551 S Bi:2:038:1 -115 128 <
ffff880036762900 3493356563 S Bi:2:038:1 -115 128 <
ffff88004d888780 3493356575 S Bi:2:038:1 -115 128 <
ffff88004d888240 3496033117 S Bo:2:038:1 -115 1 = 69
ffff8800da112cc0 3496042974 C Bi:2:038:1 0 1 = 69
ffff8800da112cc0 3496043007 S Bi:2:038:1 -115 128 <
ffff88004d888240 3496043023 C Bo:2:038:1 0 1 >
ffff88004d888240 3496109951 S Bo:2:038:1 -115 1 = 6e
ffff8800da112840 3496111601 C Bi:2:038:1 0 1 = 6e
ffff8800da112840 3496111620 S Bi:2:038:1 -115 128 <
ffff88004d888240 3496111635 C Bo:2:038:1 0 1 >
ffff88004d888240 3496326056 S Bo:2:038:1 -115 1 = 66
ffff8800da112b40 3496344909 C Bi:2:038:1 0 1 = 66
ffff8800da112b40 3496344934 S Bi:2:038:1 -115 128 <
ffff88004d888240 3496344951 C Bo:2:038:1 0 1 >
ffff88004d888240 3496490045 S Bo:2:038:1 -115 1 = 6f
ffff8800da112900 3496497366 C Bi:2:038:1 0 1 = 6f
ffff8800da112900 3496497447 S Bi:2:038:1 -115 128 <
ffff88004d888240 3496497463 C Bo:2:038:1 0 1 >
ffff88004d888240 3497102668 S Bo:2:038:1 -115 1 = 0d
ffff8800da112d80 3497110884 C Bi:2:038:1 0 1 = 0d
ffff8800da112d80 3497110984 S Bi:2:038:1 -115 128 <
ffff88004d888240 3497110998 C Bo:2:038:1 0 1 >
ffff8800da1120c0 3497112472 C Bi:2:038:1 0 1 = 0a
ffff8800da1120c0 3497112489 S Bi:2:038:1 -115 128 <
ffff8800da112f00 3497113448 C Bi:2:038:1 0 128 = 4b65726e 656c3a20 20202020 2020322e 352e3275 6e737461 626c650d 0a436f6d
ffff8800da112f00 3497113468 S Bi:2:038:1 -115 128 <
ffff8800da112300 3497115517 C Bi:2:038:1 0 128 = 2041524d 76372d4d 450d0a43 6f726520 56617269 616e743a 20436f72 7465782d
ffff8800da112300 3497115534 S Bi:2:038:1 -115 128 <
ffff8800da112a80 3497117992 C Bi:2:038:1 0 76 = 63726f65 6c656374 726f6e69 63732053 544d3332 46332d44 6973636f 76657279
ffff8800da112a80 3497118069 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499007344 S Bo:2:038:1 -115 1 = 68
ffff8800da112000 3499011544 C Bi:2:038:1 0 1 = 68
ffff8800da112000 3499011576 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499011600 C Bo:2:038:1 0 1 >
ffff88004d888240 3499093373 S Bo:2:038:1 -115 1 = 65
ffff8800da112540 3499097949 C Bi:2:038:1 0 1 = 65
ffff8800da112540 3499097968 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499097986 C Bo:2:038:1 0 1 >
ffff88004d888240 3499223965 S Bo:2:038:1 -115 1 = 6c
ffff8800da112c00 3499231458 C Bi:2:038:1 0 1 = 6c
ffff8800da112c00 3499231478 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499231497 C Bo:2:038:1 0 1 >
ffff88004d888240 3499322804 S Bo:2:038:1 -115 1 = 70
ffff8800da1129c0 3499324449 C Bi:2:038:1 0 1 = 70
ffff8800da1129c0 3499324543 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499324558 C Bo:2:038:1 0 1 >
ffff88004d888240 3499599221 S Bo:2:038:1 -115 1 = 0d
ffff8800da112600 3499618600 C Bi:2:038:1 0 1 = 0d
ffff8800da112600 3499618681 S Bi:2:038:1 -115 128 <
ffff88004d888240 3499618696 C Bo:2:038:1 0 1 >
ffff880036762900 3499621246 C Bi:2:038:1 0 1 = 0a
ffff880036762900 3499621265 S Bi:2:038:1 -115 128 <
ffff8800b8cfb000 3505740898 S Co:2:038:0 s 21 22 0000 0000 0000 0
ffff8800b8cfb000 3505755366 C Co:2:038:0 0 0
ffff8800da112480 3505756845 C Ii:2:038:2 -2:128 0
ffff8800da112cc0 3505761025 C Bi:2:038:1 -2 0
ffff8800da112840 3505761531 C Bi:2:038:1 -2 0
ffff8800da112b40 3505762654 C Bi:2:038:1 -2 0
ffff8800da112900 3505763567 C Bi:2:038:1 -2 0
ffff8800da112d80 3505764554 C Bi:2:038:1 -2 0
ffff8800da1120c0 3505765527 C Bi:2:038:1 -2 0
ffff8800da112f00 3505768333 C Bi:2:038:1 -2 0
ffff8800da112300 3505770688 C Bi:2:038:1 -2 0
ffff8800da112a80 3505772327 C Bi:2:038:1 -2 0
ffff8800da112000 3505774706 C Bi:2:038:1 -2 0
ffff8800da112540 3505776239 C Bi:2:038:1 -2 0
ffff8800da112c00 3505779233 C Bi:2:038:1 -2 0
ffff8800da1129c0 3505781215 C Bi:2:038:1 -2 0
ffff8800da112600 3505782627 C Bi:2:038:1 -2 0
ffff880036762900 3505784748 C Bi:2:038:1 -2 0
ffff88004d888780 3505786861 C Bi:2:038:1 -2 0