# HG changeset patch # User Jacob Alexander # Date 1359768614 18000 # Node ID b9f4eeb89b80385a9c9232df73ccfce14fde73e4 # Parent c5e5e684478d54600b92a4f4dc553f6a32c6e0f8 Completing CMake variable generation for USB parameters (AVR Support) - Had to add the iSerialNumber parameter to the AVR USB descriptor - Removed a faulty pack command for avr-gcc that is not required diff -r c5e5e684478d -r b9f4eeb89b80 CMakeLists.txt --- a/CMakeLists.txt Fri Feb 01 20:02:55 2013 -0500 +++ b/CMakeLists.txt Fri Feb 01 20:30:14 2013 -0500 @@ -27,8 +27,8 @@ #| "avr" # Teensy++ 1.0 #| "avr" # Teensy++ 2.0 #| "arm" # Teensy 3.0 -set( COMPILER_FAMILY "arm" ) -#set( COMPILER_FAMILY "avr" ) +#set( COMPILER_FAMILY "arm" ) +set( COMPILER_FAMILY "avr" ) message( STATUS "Compiler Family:" ) message( "${COMPILER_FAMILY}" ) diff -r c5e5e684478d -r b9f4eeb89b80 Lib/_buildvars.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/_buildvars.h Fri Feb 01 20:30:14 2013 -0500 @@ -0,0 +1,45 @@ +/* Copyright (C) 2013 by Jacob Alexander + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef __buildvars_h +#define __buildvars_h + +// ----- Includes ----- + + + +// ----- Defines ----- + +// You can change these to give your code its own name. +#define STR_MANUFACTURER L"@MANUFACTURER@" +#define STR_PRODUCT L"Keyboard - @ScanModule@ @MacroModule@ @USBModule@ @DebugModule@" +#define STR_SERIAL L"@GitLastCommitDate@" + + +// Mac OS-X and Linux automatically load the correct drivers. On +// Windows, even though the driver is supplied by Microsoft, an +// INF file is needed to load the driver. These numbers need to +// match the INF file. +#define VENDOR_ID @VENDOR_ID@ +#define PRODUCT_ID @PRODUCT_ID@ + +#endif + diff -r c5e5e684478d -r b9f4eeb89b80 USB/pjrc/arm/usb_desc.h --- a/USB/pjrc/arm/usb_desc.h Fri Feb 01 20:02:55 2013 -0500 +++ b/USB/pjrc/arm/usb_desc.h Fri Feb 01 20:30:14 2013 -0500 @@ -23,10 +23,6 @@ #define DEVICE_CLASS 0xEF #define DEVICE_SUBCLASS 0x02 #define DEVICE_PROTOCOL 0x01 -#define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'} -#define MANUFACTURER_NAME_LEN 11 -#define PRODUCT_NAME {'S','e','r','i','a','l','/','K','e','y','b','o','a','r','d','/','M','o','u','s','e','/','J','o','y','s','t','i','c','k'} -#define PRODUCT_NAME_LEN 30 #define EP0_SIZE 64 #define NUM_ENDPOINTS 15 #define NUM_INTERFACE 5 diff -r c5e5e684478d -r b9f4eeb89b80 USB/pjrc/avr/usb_keyboard_debug.c --- a/USB/pjrc/avr/usb_keyboard_debug.c Fri Feb 01 20:02:55 2013 -0500 +++ b/USB/pjrc/avr/usb_keyboard_debug.c Fri Feb 01 20:30:14 2013 -0500 @@ -94,7 +94,7 @@ 0x00, 0x01, // bcdDevice 1, // iManufacturer 2, // iProduct - 0, // iSerialNumber + 3, // iSerialNumber 1 // bNumConfigurations }; @@ -239,6 +239,11 @@ 3, STR_PRODUCT }; +static const struct usb_string_descriptor_struct PROGMEM string3 = { + sizeof(STR_SERIAL), + 3, + STR_SERIAL +}; // This table defines which descriptor data is sent for each specific // request from the host (in wValue and wIndex). @@ -256,7 +261,8 @@ {0x2100, DEBUG_INTERFACE, config1_descriptor+DEBUG_HID_DESC_OFFSET, 9}, {0x0300, 0x0000, (const uint8_t *)&string0, 4}, {0x0301, 0x0409, (const uint8_t *)&string1, sizeof(STR_MANUFACTURER)}, - {0x0302, 0x0409, (const uint8_t *)&string2, sizeof(STR_PRODUCT)} + {0x0302, 0x0409, (const uint8_t *)&string2, sizeof(STR_PRODUCT)}, + {0x0303, 0x0409, (const uint8_t *)&string3, sizeof(STR_SERIAL)} }; #define NUM_DESC_LIST (sizeof(descriptor_list)/sizeof(struct descriptor_list_struct)) @@ -697,4 +703,3 @@ UECONX = (1<