mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-07 05:54:05 -06:00
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>
This commit is contained in:
parent
4326a3adce
commit
3eafc83458
10 changed files with 1239 additions and 3 deletions
75
lib/pjrc_usb_serial/usb_serial.patch
Normal file
75
lib/pjrc_usb_serial/usb_serial.patch
Normal file
|
@ -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)
|
||||
{
|
Loading…
Add table
Add a link
Reference in a new issue