From 2fdca55f58f29aa01be6a0b90728c902c20098ef Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Fri, 25 Dec 2015 12:45:23 +0000 Subject: Updated all USB demos. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8644 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c | 3 --- demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c | 24 ++++++++++++++++++++++-- demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) (limited to 'demos/STM32/RT-STM32F407-DISCOVERY-MEMS') diff --git a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c index 5f102f6a8..1c02f91f7 100644 --- a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c +++ b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c @@ -24,9 +24,6 @@ #include "usbcfg.h" -/* Virtual serial port over USB.*/ -SerialUSBDriver SDU1; - /*===========================================================================*/ /* Command line related. */ /*===========================================================================*/ diff --git a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c index f825ec239..07a492758 100644 --- a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c +++ b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c @@ -14,9 +14,11 @@ limitations under the License. */ -#include "ch.h" #include "hal.h" +/* Virtual serial port over USB.*/ +SerialUSBDriver SDU1; + /* * Endpoints to be used for USBD1. */ @@ -284,6 +286,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_SUSPEND: + chSysLockFromISR(); + + /* Disconnection event on suspend.*/ + sduDisconnectI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: return; @@ -293,6 +301,18 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { return; } +/* + * Handles the USB driver global events. + */ +static void sof_handler(USBDriver *usbp) { + + (void)usbp; + + osalSysLockFromISR(); + sduSOFHookI(&SDU1); + osalSysUnlockFromISR(); +} + /* * USB driver configuration. */ @@ -300,7 +320,7 @@ const USBConfig usbcfg = { usb_event, get_descriptor, sduRequestsHook, - NULL + sof_handler }; /* diff --git a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h index 2ffaa17f9..2da1c40a4 100644 --- a/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h +++ b/demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h @@ -19,6 +19,7 @@ extern const USBConfig usbcfg; extern SerialUSBConfig serusbcfg; +extern SerialUSBDriver SDU1; #endif /* _USBCFG_H_ */ -- cgit v1.2.3