From 41eb1a7e7ec33ee7abd62fa954be6b995d6e9707 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 11 Jun 2012 19:43:14 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4271 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/src/serial_usb.c | 4 ++-- testhal/STM32F4xx/USB_CDC/main.c | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/os/hal/src/serial_usb.c b/os/hal/src/serial_usb.c index 5fec52a68..52be6e975 100644 --- a/os/hal/src/serial_usb.c +++ b/os/hal/src/serial_usb.c @@ -288,8 +288,8 @@ void sduDataTransmitted(USBDriver *usbp, usbep_t ep) { (void)ep; - chnAddFlagsI(sdup, CHN_OUTPUT_EMPTY); chSysLockFromIsr(); + chnAddFlagsI(sdup, CHN_OUTPUT_EMPTY); if ((n = chOQGetFullI(&sdup->oqueue)) > 0) { /* The endpoint cannot be busy, we are in the context of the callback, @@ -321,8 +321,8 @@ void sduDataReceived(USBDriver *usbp, usbep_t ep) { (void)ep; - chnAddFlagsI(sdup, CHN_INPUT_AVAILABLE); chSysLockFromIsr(); + chnAddFlagsI(sdup, CHN_INPUT_AVAILABLE); /* Writes to the input queue can only happen when there is enough space to hold at least one packet.*/ diff --git a/testhal/STM32F4xx/USB_CDC/main.c b/testhal/STM32F4xx/USB_CDC/main.c index e36ce3dc9..0ae9c81e0 100644 --- a/testhal/STM32F4xx/USB_CDC/main.c +++ b/testhal/STM32F4xx/USB_CDC/main.c @@ -225,6 +225,11 @@ static const USBDescriptor *get_descriptor(USBDriver *usbp, return NULL; } +/** + * @brief IN EP1 state. + */ +static USBInEndpointState ep1instate; + /** * @brief EP1 initialization structure (IN only). */ @@ -235,11 +240,16 @@ static const USBEndpointConfig ep1config = { NULL, 0x0040, 0x0000, - NULL, + &ep1instate, NULL, NULL }; +/** + * @brief OUT EP1 state. + */ +USBOutEndpointState ep1outstate; + /** * @brief EP2 initialization structure (IN only). */ @@ -251,10 +261,15 @@ static const USBEndpointConfig ep2config = { 0x0010, 0x0000, NULL, - NULL, + &ep1outstate, NULL }; +/** + * @brief OUT EP2 state. + */ +USBOutEndpointState ep2outstate; + /** * @brief EP3 initialization structure (OUT only). */ @@ -266,7 +281,7 @@ static const USBEndpointConfig ep3config = { 0x0000, 0x0040, NULL, - NULL, + &ep2outstate, NULL };