git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_2.4.x@5636 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
gdisirio 2013-04-27 10:18:20 +00:00
parent 1b3a847d4b
commit cc1bffac15
3 changed files with 17 additions and 12 deletions

View File

@ -51,7 +51,7 @@
uninit [label="USB_UNINIT", style="bold"]; uninit [label="USB_UNINIT", style="bold"];
ready [label="USB_READY\nClock Enabled"]; ready [label="USB_READY\nClock Enabled"];
selected [label="\nUSB_SELECTED\naddress\nassigned"]; selected [label="\nUSB_SELECTED\naddress\nassigned"];
configured [label="\nUSB_ACTIVE\nconfiguration\nselected"]; active [label="\nUSB_ACTIVE\nconfiguration\nselected"];
uninit -> stop [label=" usbInit()", constraint=false]; uninit -> stop [label=" usbInit()", constraint=false];
stop -> stop [label="\nusbStop()"]; stop -> stop [label="\nusbStop()"];
@ -60,12 +60,14 @@
ready -> ready [label="\n\nusbStart()"]; ready -> ready [label="\n\nusbStart()"];
ready -> ready [label="\nSUSPEND/WAKEUP\n>event_cb<"]; ready -> ready [label="\nSUSPEND/WAKEUP\n>event_cb<"];
ready -> selected [label="\nSET_ADDRESS\n>event_cb<"]; ready -> selected [label="\nSET_ADDRESS\n>event_cb<"];
selected -> stop [label="\nusbStop()"];
selected -> ready [label="\nUSB RESET\n>event_cb<"]; selected -> ready [label="\nUSB RESET\n>event_cb<"];
selected -> selected [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<"]; selected -> selected [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<"];
selected -> configured [label="\nSET_CONF(n)\n>event_cb<"]; selected -> active [label="\nSET_CONF(n)\n>event_cb<"];
configured -> selected [label="\nSET_CONF(0)\n>event_cb<"]; active -> stop [label="\nusbStop()"];
configured -> configured [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<\n\nEndpoints Activity\n >in_cb< or >out_cb<"]; active -> selected [label="\nSET_CONF(0)\n>event_cb<"];
configured -> ready [label="\nUSB RESET\n>event_cb<"]; active -> active [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<\n\nEndpoints Activity\n >in_cb< or >out_cb<"];
active -> ready [label="\nUSB RESET\n>event_cb<"];
} }
* @enddot * @enddot
* @else * @else
@ -80,7 +82,7 @@
uninit [label="USB_UNINIT", style="bold"]; uninit [label="USB_UNINIT", style="bold"];
ready [label="USB_READY\nClock Enabled"]; ready [label="USB_READY\nClock Enabled"];
selected [label="\nUSB_SELECTED\naddress\nassigned"]; selected [label="\nUSB_SELECTED\naddress\nassigned"];
configured [label="\nUSB_ACTIVE\nconfiguration\nselected"]; active [label="\nUSB_ACTIVE\nconfiguration\nselected"];
uninit -> stop [label=" usbInit()", constraint=false]; uninit -> stop [label=" usbInit()", constraint=false];
stop -> stop [label="\nusbStop()"]; stop -> stop [label="\nusbStop()"];
@ -89,12 +91,14 @@
ready -> ready [label="\n\nusbStart()"]; ready -> ready [label="\n\nusbStart()"];
ready -> ready [label="\nSUSPEND/WAKEUP\n>event_cb<"]; ready -> ready [label="\nSUSPEND/WAKEUP\n>event_cb<"];
ready -> selected [label="\nSET_ADDRESS\n>event_cb<"]; ready -> selected [label="\nSET_ADDRESS\n>event_cb<"];
selected -> stop [label="\nusbStop()"];
selected -> ready [label="\nUSB RESET\n>event_cb<"]; selected -> ready [label="\nUSB RESET\n>event_cb<"];
selected -> selected [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<"]; selected -> selected [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<"];
selected -> configured [label="\nSET_CONF(n)\n>event_cb<"]; selected -> active [label="\nSET_CONF(n)\n>event_cb<"];
configured -> selected [label="\nSET_CONF(0)\n>event_cb<"]; active -> stop [label="\nusbStop()"];
configured -> configured [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<\n\nEndpoints Activity\n >in_cb< or >out_cb<"]; active -> selected [label="\nSET_CONF(0)\n>event_cb<"];
configured -> ready [label="\nUSB RESET\n>event_cb<"]; active -> active [label="\nSUSPEND/WAKEUP\n>event_cb<\n\nValid EP0 Message\n>requests_hook_cb<\n\nGET DESCRIPTOR\n>get_descriptor_cb<\n\nEndpoints Activity\n >in_cb< or >out_cb<"];
active -> ready [label="\nUSB RESET\n>event_cb<"];
} }
* @enddot * @enddot
* @endif * @endif

View File

@ -289,8 +289,8 @@ void usbStop(USBDriver *usbp) {
chDbgCheck(usbp != NULL, "usbStop"); chDbgCheck(usbp != NULL, "usbStop");
chSysLock(); chSysLock();
chDbgAssert((usbp->state == USB_STOP) || (usbp->state == USB_READY), chDbgAssert((usbp->state == USB_STOP) || (usbp->state == USB_READY) ||
"usbStop(), #1", "invalid state"); (usbp->state == USB_SELECTED) || (usbp->state == USB_ACTIVE),
usb_lld_stop(usbp); usb_lld_stop(usbp);
usbp->state = USB_STOP; usbp->state = USB_STOP;
chSysUnlock(); chSysUnlock();

View File

@ -79,6 +79,7 @@
***************************************************************************** *****************************************************************************
*** 2.4.4 *** *** 2.4.4 ***
- FIX: Fixed USB driver cannot be stopped (bug #405).
- FIX: Fixed fixed I2C malfunction after fixing bug 3607518 (bug 3607549). - FIX: Fixed fixed I2C malfunction after fixing bug 3607518 (bug 3607549).
- FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518). - FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518).
- FIX: Fixed start of any ADC disables VREF and VBAT (bug 3607467). - FIX: Fixed start of any ADC disables VREF and VBAT (bug 3607467).