adds a USB serial port to your design
Dependents: Example_WatchDog_Timer
Diff: USBSerial/USBCDC.cpp
- Revision:
- 75:9e53252fac92
- Parent:
- 70:2c525a50f1b6
diff -r 3d21c913753e -r 9e53252fac92 USBSerial/USBCDC.cpp --- a/USBSerial/USBCDC.cpp Fri Nov 23 18:05:40 2018 +0000 +++ b/USBSerial/USBCDC.cpp Sat Nov 24 14:06:47 2018 -0600 @@ -144,8 +144,8 @@ } -uint8_t * USBCDC::deviceDesc() { - static uint8_t deviceDescriptor[] = { +const uint8_t * USBCDC::deviceDesc() { + uint8_t deviceDescriptorTemp[] = { 18, // bLength 1, // bDescriptorType 0x10, 0x01, // bcdUSB @@ -161,11 +161,13 @@ 3, // iSerialNumber 1 // bNumConfigurations }; + MBED_ASSERT(sizeof(deviceDescriptorTemp) == sizeof(deviceDescriptor)); + memcpy(deviceDescriptor, deviceDescriptorTemp, sizeof(deviceDescriptor)); return deviceDescriptor; } -uint8_t * USBCDC::stringIinterfaceDesc() { - static uint8_t stringIinterfaceDescriptor[] = { +const uint8_t * USBCDC::stringIinterfaceDesc() { + static const uint8_t stringIinterfaceDescriptor[] = { 0x08, STRING_DESCRIPTOR, 'C',0,'D',0,'C',0, @@ -173,8 +175,8 @@ return stringIinterfaceDescriptor; } -uint8_t * USBCDC::stringIproductDesc() { - static uint8_t stringIproductDescriptor[] = { +const uint8_t * USBCDC::stringIproductDesc() { + static const uint8_t stringIproductDescriptor[] = { 0x16, STRING_DESCRIPTOR, 'C',0,'D',0,'C',0,' ',0,'D',0,'E',0,'V',0,'I',0,'C',0,'E',0 @@ -185,8 +187,8 @@ #define CONFIG1_DESC_SIZE (9+8+9+5+5+4+5+7+9+7+7) -uint8_t * USBCDC::configurationDesc() { - static uint8_t configDescriptor[] = { +const uint8_t * USBCDC::configurationDesc() { + static const uint8_t configDescriptor[] = { // configuration descriptor 9, // bLength 2, // bDescriptorType