From 44603763e16a634ecc2e65bf7264c9c3cd1755dd Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 20 Aug 2012 17:09:16 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4595 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c | 68 +++++++++----------- testhal/STM32F4xx/USB_CDC/main.c | 2 - 2 files changed, 31 insertions(+), 39 deletions(-) diff --git a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c index 0b1651e2a..0c6079516 100644 --- a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c +++ b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c @@ -353,17 +353,22 @@ static const USBDescriptor *get_descriptor(USBDriver *usbp, static USBInEndpointState ep1instate; /** - * @brief EP1 initialization structure (IN only). + * @brief OUT EP1 state. + */ +static USBOutEndpointState ep1outstate; + +/** + * @brief EP1 initialization structure (both IN and OUT). */ static const USBEndpointConfig ep1config = { USB_EP_MODE_TYPE_BULK, NULL, sduDataTransmitted, - NULL, + sduDataReceived, + 0x0040, 0x0040, - 0x0000, &ep1instate, - NULL, + &ep1outstate, 2, NULL }; @@ -371,7 +376,7 @@ static const USBEndpointConfig ep1config = { /** * @brief IN EP2 state. */ -USBInEndpointState ep2instate; +static USBInEndpointState ep2instate; /** * @brief EP2 initialization structure (IN only). @@ -389,27 +394,6 @@ static const USBEndpointConfig ep2config = { NULL }; -/** - * @brief OUT EP2 state. - */ -USBOutEndpointState ep3outstate; - -/** - * @brief EP3 initialization structure (OUT only). - */ -static const USBEndpointConfig ep3config = { - USB_EP_MODE_TYPE_BULK, - NULL, - NULL, - sduDataReceived, - 0x0000, - 0x0040, - NULL, - &ep3outstate, - 0, - NULL -}; - /* * Handles the USB driver global events. */ @@ -428,7 +412,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { must be used.*/ usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config); usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config); - usbInitEndpointI(usbp, USB_CDC_DATA_AVAILABLE_EP, &ep3config); /* Resetting the state of the CDC subsystem.*/ sduConfigureHookI(usbp); @@ -445,17 +428,21 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { return; } +/* + * USB driver configuration. + */ +static const USBConfig usbcfg = { + usb_event, + get_descriptor, + sduRequestsHook, + NULL +}; + /* * Serial over USB driver configuration. */ static const SerialUSBConfig serusbcfg = { - &USBD1, - { - usb_event, - get_descriptor, - sduRequestsHook, - NULL - } + &USBD1 }; /*===========================================================================*/ @@ -627,12 +614,19 @@ int main(void) { chSysInit(); /* - * Activates the shell on the USB-CDC. + * Initializes a serial-over-USB CDC driver. + */ + sduObjectInit(&SDU1); + sduStart(&SDU1, &serusbcfg); + + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. */ usbDisconnectBus(serusbcfg.usbp); chThdSleepMilliseconds(1000); - sduObjectInit(&SDU1); - sduStart(&SDU1, &serusbcfg); + usbStart(serusbcfg.usbp, &usbcfg); usbConnectBus(serusbcfg.usbp); /* diff --git a/testhal/STM32F4xx/USB_CDC/main.c b/testhal/STM32F4xx/USB_CDC/main.c index f2f00ebce..49a31a674 100644 --- a/testhal/STM32F4xx/USB_CDC/main.c +++ b/testhal/STM32F4xx/USB_CDC/main.c @@ -408,9 +408,7 @@ static void cmd_write(BaseSequentialStream *chp, int argc, char *argv[]) { while (chnGetTimeout((BaseChannel *)chp, TIME_IMMEDIATE) == Q_TIMEOUT) { chSequentialStreamWrite(&SDU1, buf, sizeof buf - 1); -// palTogglePad(GPIOD, GPIOD_LED4); } -// palClearPad(GPIOD, GPIOD_LED4); chprintf(chp, "\r\n\nstopped\r\n"); }