diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-06-04 19:34:39 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-06-05 10:52:45 -0400 |
commit | 3eafc8345885ff7d58c0124e518b240cbbaa8ecc (patch) | |
tree | 8a97d30951000819dd7f3074721ab25b3731b68f /lib/pjrc_usb_serial/usb_serial.patch | |
parent | 4326a3adced3788c774bf248d64776d730bafe0f (diff) | |
download | kutter-3eafc8345885ff7d58c0124e518b240cbbaa8ecc.tar.gz kutter-3eafc8345885ff7d58c0124e518b240cbbaa8ecc.tar.xz kutter-3eafc8345885ff7d58c0124e518b240cbbaa8ecc.zip |
avr: Initial support for Atmel AT90USB1286 mcu
Add GPIO definitions for the AT90USB1286. Add code for communicating
over USB port on AT90USB1286.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
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) + { |