- Had to add the iSerialNumber parameter to the AVR USB descriptor - Removed a faulty pack command for avr-gcc that is not requiredsimple
#| "avr" # Teensy++ 1.0 | #| "avr" # Teensy++ 1.0 | ||||
#| "avr" # Teensy++ 2.0 | #| "avr" # Teensy++ 2.0 | ||||
#| "arm" # Teensy 3.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( STATUS "Compiler Family:" ) | ||||
message( "${COMPILER_FAMILY}" ) | message( "${COMPILER_FAMILY}" ) |
/* 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 | |||||
#define DEVICE_CLASS 0xEF | #define DEVICE_CLASS 0xEF | ||||
#define DEVICE_SUBCLASS 0x02 | #define DEVICE_SUBCLASS 0x02 | ||||
#define DEVICE_PROTOCOL 0x01 | #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 EP0_SIZE 64 | ||||
#define NUM_ENDPOINTS 15 | #define NUM_ENDPOINTS 15 | ||||
#define NUM_INTERFACE 5 | #define NUM_INTERFACE 5 |
0x00, 0x01, // bcdDevice | 0x00, 0x01, // bcdDevice | ||||
1, // iManufacturer | 1, // iManufacturer | ||||
2, // iProduct | 2, // iProduct | ||||
0, // iSerialNumber | |||||
3, // iSerialNumber | |||||
1 // bNumConfigurations | 1 // bNumConfigurations | ||||
}; | }; | ||||
3, | 3, | ||||
STR_PRODUCT | 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 | // This table defines which descriptor data is sent for each specific | ||||
// request from the host (in wValue and wIndex). | // request from the host (in wValue and wIndex). | ||||
{0x2100, DEBUG_INTERFACE, config1_descriptor+DEBUG_HID_DESC_OFFSET, 9}, | {0x2100, DEBUG_INTERFACE, config1_descriptor+DEBUG_HID_DESC_OFFSET, 9}, | ||||
{0x0300, 0x0000, (const uint8_t *)&string0, 4}, | {0x0300, 0x0000, (const uint8_t *)&string0, 4}, | ||||
{0x0301, 0x0409, (const uint8_t *)&string1, sizeof(STR_MANUFACTURER)}, | {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)) | #define NUM_DESC_LIST (sizeof(descriptor_list)/sizeof(struct descriptor_list_struct)) | ||||
UECONX = (1<<STALLRQ) | (1<<EPEN); // stall | UECONX = (1<<STALLRQ) | (1<<EPEN); // stall | ||||
} | } | ||||
#define CDC_SET_CONTROL_LINE_STATE 0x22 | #define CDC_SET_CONTROL_LINE_STATE 0x22 | ||||
#endif | #endif | ||||
#endif | #endif | ||||
#| Tuning Options | #| Tuning Options | ||||
#| -f...: tuning, see GCC manual and avr-libc documentation | #| -f...: tuning, see GCC manual and avr-libc documentation | ||||
#| NOTE: -fshort-wchar is specified to allow USB strings be passed conveniently | #| NOTE: -fshort-wchar is specified to allow USB strings be passed conveniently | ||||
set( TUNING "-funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -fshort-wchar" ) | |||||
set( TUNING "-funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums" ) | |||||
#| Optimization level, can be [0, 1, 2, 3, s]. | #| Optimization level, can be [0, 1, 2, 3, s]. |
#| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones | #| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones | ||||
##| Deals with acquiring the keypress information and turning it into a key index | ##| Deals with acquiring the keypress information and turning it into a key index | ||||
set( ScanModule "MBC-55X" ) | |||||
set( ScanModule "FACOM6684" ) | |||||
##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code | ##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code | ||||
set( MacroModule "buffer" ) | set( MacroModule "buffer" ) |