diff options
Diffstat (limited to 'lib/pjrc_usb_serial/usb_serial.patch')
-rw-r--r-- | lib/pjrc_usb_serial/usb_serial.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/pjrc_usb_serial/usb_serial.patch b/lib/pjrc_usb_serial/usb_serial.patch new file mode 100644 index 00000000..5aaa08e8 --- /dev/null +++ b/lib/pjrc_usb_serial/usb_serial.patch @@ -0,0 +1,75 @@ +--- usb_serial.c 2011-04-19 05:54:12.000000000 -0400 ++++ usb_serial.c 2016-06-04 23:48:52.590001697 -0400 +@@ -30,6 +30,7 @@ + // Version 1.6: fix zero length packet bug + // Version 1.7: fix usb_serial_set_control + ++#include <string.h> + #define USB_SERIAL_PRIVATE_INCLUDE + #include "usb_serial.h" + +@@ -146,7 +147,7 @@ + // in here should only be done by those who've read chapter 9 of the USB + // spec and relevant portions of any USB class specifications! + +-static uint8_t PROGMEM device_descriptor[] = { ++static const uint8_t PROGMEM device_descriptor[] = { + 18, // bLength + 1, // bDescriptorType + 0x00, 0x02, // bcdUSB +@@ -164,7 +165,7 @@ + }; + + #define CONFIG1_DESC_SIZE (9+9+5+5+4+5+7+9+7+7) +-static uint8_t PROGMEM config1_descriptor[CONFIG1_DESC_SIZE] = { ++static const uint8_t PROGMEM config1_descriptor[CONFIG1_DESC_SIZE] = { + // configuration descriptor, USB spec 9.6.3, page 264-266, Table 9-10 + 9, // bLength; + 2, // bDescriptorType; +@@ -248,22 +249,22 @@ + uint8_t bDescriptorType; + int16_t wString[]; + }; +-static struct usb_string_descriptor_struct PROGMEM string0 = { ++static const struct usb_string_descriptor_struct PROGMEM string0 = { + 4, + 3, + {0x0409} + }; +-static struct usb_string_descriptor_struct PROGMEM string1 = { ++static const struct usb_string_descriptor_struct PROGMEM string1 = { + sizeof(STR_MANUFACTURER), + 3, + STR_MANUFACTURER + }; +-static struct usb_string_descriptor_struct PROGMEM string2 = { ++static const struct usb_string_descriptor_struct PROGMEM string2 = { + sizeof(STR_PRODUCT), + 3, + STR_PRODUCT + }; +-static struct usb_string_descriptor_struct PROGMEM string3 = { ++static const struct usb_string_descriptor_struct PROGMEM string3 = { + sizeof(STR_SERIAL_NUMBER), + 3, + STR_SERIAL_NUMBER +@@ -271,7 +272,7 @@ + + // This table defines which descriptor data is sent for each specific + // request from the host (in wValue and wIndex). +-static struct descriptor_list_struct { ++static const struct descriptor_list_struct { + uint16_t wValue; + uint16_t wIndex; + const uint8_t *addr; +@@ -646,7 +647,9 @@ + // communication + uint32_t usb_serial_get_baud(void) + { +- return *(uint32_t *)cdc_line_coding; ++ uint32_t res; ++ memcpy(&res, cdc_line_coding, sizeof(res)); ++ return res; + } + uint8_t usb_serial_get_stopbits(void) + { |