diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-12-25 12:45:23 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-12-25 12:45:23 +0000 |
commit | 2fdca55f58f29aa01be6a0b90728c902c20098ef (patch) | |
tree | 616b0a91bbf31c7882f292a44fccd99fef1d1151 /demos/STM32/RT-STM32F407-DISCOVERY-MEMS | |
parent | 6857f4ff339826e7c5b2f26cf19d6275208631e6 (diff) | |
download | ChibiOS-2fdca55f58f29aa01be6a0b90728c902c20098ef.tar.gz ChibiOS-2fdca55f58f29aa01be6a0b90728c902c20098ef.tar.bz2 ChibiOS-2fdca55f58f29aa01be6a0b90728c902c20098ef.zip |
Updated all USB demos.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8644 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/STM32/RT-STM32F407-DISCOVERY-MEMS')
-rw-r--r-- | demos/STM32/RT-STM32F407-DISCOVERY-MEMS/main.c | 3 | ||||
-rw-r--r-- | demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.c | 24 | ||||
-rw-r--r-- | demos/STM32/RT-STM32F407-DISCOVERY-MEMS/usbcfg.h | 1 |
3 files changed, 23 insertions, 5 deletions
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;
@@ -294,13 +302,25 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { }
/*
+ * Handles the USB driver global events.
+ */
+static void sof_handler(USBDriver *usbp) {
+
+ (void)usbp;
+
+ osalSysLockFromISR();
+ sduSOFHookI(&SDU1);
+ osalSysUnlockFromISR();
+}
+
+/*
* USB driver configuration.
*/
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_ */
|