aboutsummaryrefslogtreecommitdiffstats
path: root/testhal/STM32F4xx/USB_CDC
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-28 13:12:20 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-28 13:12:20 +0000
commit53ebb098cb632593656bba3a28730ca2bb3de1ce (patch)
tree7793a2cac807b64e56800663541768e059bb9aed /testhal/STM32F4xx/USB_CDC
parent77bd97a9dbaffecbc753f46fe01bd54d9ad4dd3c (diff)
downloadChibiOS-53ebb098cb632593656bba3a28730ca2bb3de1ce.tar.gz
ChibiOS-53ebb098cb632593656bba3a28730ca2bb3de1ce.tar.bz2
ChibiOS-53ebb098cb632593656bba3a28730ca2bb3de1ce.zip
Updated serial_usb driver and demos.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5637 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'testhal/STM32F4xx/USB_CDC')
-rw-r--r--testhal/STM32F4xx/USB_CDC/main.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/testhal/STM32F4xx/USB_CDC/main.c b/testhal/STM32F4xx/USB_CDC/main.c
index 9831e19bb..ecf575b4a 100644
--- a/testhal/STM32F4xx/USB_CDC/main.c
+++ b/testhal/STM32F4xx/USB_CDC/main.c
@@ -21,7 +21,6 @@
#include "hal.h"
#include "test.h"
-#include "usb_cdc.h"
#include "shell.h"
#include "chprintf.h"
@@ -30,9 +29,16 @@
/*===========================================================================*/
/*
+ * Endpoints to be used for USBD2.
+ */
+#define USBD2_DATA_REQUEST_EP 1
+#define USBD2_DATA_AVAILABLE_EP 1
+#define USBD2_INTERRUPT_REQUEST_EP 2
+
+/*
* Serial over USB Driver structure.
*/
-static SerialUSBDriver SDU1;
+static SerialUSBDriver SDU2;
/*
* USB Device Descriptor.
@@ -110,7 +116,7 @@ static const uint8_t vcom_configuration_descriptor_data[67] = {
USB_DESC_BYTE (0x01), /* bSlaveInterface0 (Data Class
Interface). */
/* Endpoint 2 Descriptor.*/
- USB_DESC_ENDPOINT (USB_CDC_INTERRUPT_REQUEST_EP|0x80,
+ USB_DESC_ENDPOINT (USBD2_INTERRUPT_REQUEST_EP|0x80,
0x03, /* bmAttributes (Interrupt). */
0x0008, /* wMaxPacketSize. */
0xFF), /* bInterval. */
@@ -126,12 +132,12 @@ static const uint8_t vcom_configuration_descriptor_data[67] = {
4.7). */
0x00), /* iInterface. */
/* Endpoint 3 Descriptor.*/
- USB_DESC_ENDPOINT (USB_CDC_DATA_AVAILABLE_EP, /* bEndpointAddress.*/
+ USB_DESC_ENDPOINT (USBD2_DATA_AVAILABLE_EP, /* bEndpointAddress.*/
0x02, /* bmAttributes (Bulk). */
0x0040, /* wMaxPacketSize. */
0x00), /* bInterval. */
/* Endpoint 1 Descriptor.*/
- USB_DESC_ENDPOINT (USB_CDC_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/
+ USB_DESC_ENDPOINT (USBD2_DATA_REQUEST_EP|0x80, /* bEndpointAddress.*/
0x02, /* bmAttributes (Bulk). */
0x0040, /* wMaxPacketSize. */
0x00) /* bInterval. */
@@ -284,8 +290,8 @@ static void usb_event(USBDriver *usbp, usbevent_t event) {
/* Enables the endpoints specified into the configuration.
Note, this callback is invoked from an ISR so I-Class functions
must be used.*/
- usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config);
- usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config);
+ usbInitEndpointI(usbp, USBD2_DATA_REQUEST_EP, &ep1config);
+ usbInitEndpointI(usbp, USBD2_INTERRUPT_REQUEST_EP, &ep2config);
/* Resetting the state of the CDC subsystem.*/
sduConfigureHookI(usbp);
@@ -316,7 +322,10 @@ static const USBConfig usbcfg = {
* Serial over USB driver configuration.
*/
static const SerialUSBConfig serusbcfg = {
- &USBD2
+ &USBD2,
+ USBD2_DATA_REQUEST_EP,
+ USBD2_DATA_AVAILABLE_EP,
+ USBD2_INTERRUPT_REQUEST_EP
};
/*===========================================================================*/
@@ -403,7 +412,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);
+ chSequentialStreamWrite(&SDU2, buf, sizeof buf - 1);
}
chprintf(chp, "\r\n\nstopped\r\n");
}
@@ -417,7 +426,7 @@ static const ShellCommand commands[] = {
};
static const ShellConfig shell_cfg1 = {
- (BaseSequentialStream *)&SDU1,
+ (BaseSequentialStream *)&SDU2,
commands
};
@@ -463,8 +472,8 @@ int main(void) {
/*
* Initializes a serial-over-USB CDC driver.
*/
- sduObjectInit(&SDU1);
- sduStart(&SDU1, &serusbcfg);
+ sduObjectInit(&SDU2);
+ sduStart(&SDU2, &serusbcfg);
/*
* Activates the USB driver and then the USB bus pull-up on D+.
@@ -502,7 +511,7 @@ int main(void) {
* sleeping in a loop and check the button state.
*/
while (TRUE) {
- if (!shelltp && (SDU1.config->usbp->state == USB_ACTIVE))
+ if (!shelltp && (SDU2.config->usbp->state == USB_ACTIVE))
shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO);
else if (chThdTerminated(shelltp)) {
chThdRelease(shelltp); /* Recovers memory of the previous shell. */