diff options
author | Jason Janse van Rensburg <l33tjas.0n@gmail.com> | 2016-08-30 14:54:00 +0200 |
---|---|---|
committer | Jason Janse van Rensburg <l33tjas.0n@gmail.com> | 2016-08-30 14:54:00 +0200 |
commit | fc2ca62a3b9552175eb7c27cc11f3a5af6cfae50 (patch) | |
tree | 59b2f2406f472a9fd2af4946420d1a1c880929c0 /tmk_core | |
parent | a41a7a9100b9f4c6bfdf49b39b05e626ffd95397 (diff) | |
parent | 8e00c464e6f488d86e0768a77a2ad5ee238dba6d (diff) |
Merge branch 'master'
Conflicts:
keyboards/planck/keymaps/bone2planck/keymap.c
Diffstat (limited to 'tmk_core')
60 files changed, 5871 insertions, 5582 deletions
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 6c03e1650e..b48173341a 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -138,6 +138,11 @@ else endif dfu-programmer $(MCU) reset +# Convert hex to bin. +flashbin: $(BUILD_DIR)/$(TARGET).hex + $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; + $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; # Generate avr-gdb config/init file which does the following: # define the reset signal, load the target file, connect to target, and set diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index cb67ac6f25..062a712bd1 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -89,9 +89,9 @@ CHIBISRC = $(STARTUPSRC) \ $(STARTUPASM) \ $(PORTASM) \ $(OSALASM) - -SRC += $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) +CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) + EXTRAINCDIRS += $(CHIBIOS)/os/license \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ @@ -143,14 +143,6 @@ MCUFLAGS = -mcpu=$(MCU) DEBUG = gdb -# Define ASM defines here -# bootloader definitions may be used in the startup .s file -ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") - OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h -else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") - OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h -endif - # List any extra directories to look for libraries here. EXTRALIBDIRS = $(RULESPATH)/ld diff --git a/tmk_core/common.mk b/tmk_core/common.mk index aa05b9491d..f826a7b540 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -5,7 +5,7 @@ else ifeq ($(PLATFORM),CHIBIOS) PLATFORM_COMMON_DIR = $(COMMON_DIR)/chibios endif -SRC += $(COMMON_DIR)/host.c \ +TMK_COMMON_SRC += $(COMMON_DIR)/host.c \ $(COMMON_DIR)/keyboard.c \ $(COMMON_DIR)/action.c \ $(COMMON_DIR)/action_tapping.c \ @@ -21,97 +21,89 @@ SRC += $(COMMON_DIR)/host.c \ $(PLATFORM_COMMON_DIR)/bootloader.c \ ifeq ($(PLATFORM),AVR) - SRC += $(PLATFORM_COMMON_DIR)/xprintf.S + TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S endif ifeq ($(PLATFORM),CHIBIOS) - SRC += $(PLATFORM_COMMON_DIR)/printf.c - SRC += $(PLATFORM_COMMON_DIR)/eeprom.c + TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c + TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom.c endif # Option modules ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) - OPT_DEFS += -DBOOTMAGIC_ENABLE - SRC += $(COMMON_DIR)/bootmagic.c + TMK_COMMON_DEFS += -DBOOTMAGIC_ENABLE + TMK_COMMON_SRC += $(COMMON_DIR)/bootmagic.c else - OPT_DEFS += -DMAGIC_ENABLE - SRC += $(COMMON_DIR)/magic.c + TMK_COMMON_DEFS += -DMAGIC_ENABLE + TMK_COMMON_SRC += $(COMMON_DIR)/magic.c endif ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) - SRC += $(COMMON_DIR)/mousekey.c - OPT_DEFS += -DMOUSEKEY_ENABLE - OPT_DEFS += -DMOUSE_ENABLE + TMK_COMMON_SRC += $(COMMON_DIR)/mousekey.c + TMK_COMMON_DEFS += -DMOUSEKEY_ENABLE + TMK_COMMON_DEFS += -DMOUSE_ENABLE endif ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) - OPT_DEFS += -DEXTRAKEY_ENABLE + TMK_COMMON_DEFS += -DEXTRAKEY_ENABLE endif ifeq ($(strip $(CONSOLE_ENABLE)), yes) - OPT_DEFS += -DCONSOLE_ENABLE + TMK_COMMON_DEFS += -DCONSOLE_ENABLE else - OPT_DEFS += -DNO_PRINT - OPT_DEFS += -DNO_DEBUG + TMK_COMMON_DEFS += -DNO_PRINT + TMK_COMMON_DEFS += -DNO_DEBUG endif ifeq ($(strip $(COMMAND_ENABLE)), yes) - SRC += $(COMMON_DIR)/command.c - OPT_DEFS += -DCOMMAND_ENABLE + TMK_COMMON_SRC += $(COMMON_DIR)/command.c + TMK_COMMON_DEFS += -DCOMMAND_ENABLE endif ifeq ($(strip $(NKRO_ENABLE)), yes) - OPT_DEFS += -DNKRO_ENABLE + TMK_COMMON_DEFS += -DNKRO_ENABLE endif ifeq ($(strip $(USB_6KRO_ENABLE)), yes) - OPT_DEFS += -DUSB_6KRO_ENABLE + TMK_COMMON_DEFS += -DUSB_6KRO_ENABLE endif ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) - SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c - OPT_DEFS += -DSLEEP_LED_ENABLE - OPT_DEFS += -DNO_SUSPEND_POWER_DOWN + TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c + TMK_COMMON_DEFS += -DSLEEP_LED_ENABLE + TMK_COMMON_DEFS += -DNO_SUSPEND_POWER_DOWN endif ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC += $(COMMON_DIR)/backlight.c - OPT_DEFS += -DBACKLIGHT_ENABLE + TMK_COMMON_SRC += $(COMMON_DIR)/backlight.c + TMK_COMMON_DEFS += -DBACKLIGHT_ENABLE endif ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) - OPT_DEFS += -DBLUETOOTH_ENABLE + TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE +endif + +ifeq ($(strip $(ONEHAND_ENABLE)), yes) + TMK_COMMON_DEFS += -DONEHAND_ENABLE endif ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) - OPT_DEFS += -DKEYMAP_SECTION_ENABLE + TMK_COMMON_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) - EXTRALDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr35.x + TMK_COMMON_LDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr35.x else ifeq ($(strip $(MCU)),atmega32u4) - EXTRALDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr5.x + TMK_COMMON_LDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr5.x else - EXTRALDFLAGS = $(error no ldscript for keymap section) + TMK_COMMON_LDFLAGS = $(error no ldscript for keymap section) endif endif -ifeq ($(MASTER),right) - OPT_DEFS += -DMASTER_IS_ON_RIGHT -else - ifneq ($(MASTER),left) -$(error MASTER does not have a valid value(left/right)) - endif -endif - - -# Version string -OPT_DEFS += -DVERSION=$(GIT_VERSION) - # Bootloader address ifdef STM32_BOOTLOADER_ADDRESS - OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) + TMK_COMMON_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) endif # Search Path diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index be6dea2b79..08ef22eb97 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -41,6 +41,12 @@ void action_exec(keyevent_t event) dprint("EVENT: "); debug_event(event); dprintln(); } +#ifdef ONEHAND_ENABLE + if (!IS_NOEVENT(event)) { + process_hand_swap(&event); + } +#endif + keyrecord_t record = { .event = event }; #ifndef NO_ACTION_TAPPING @@ -53,6 +59,26 @@ void action_exec(keyevent_t event) #endif } +#ifdef ONEHAND_ENABLE +bool swap_hands = false; + +void process_hand_swap(keyevent_t *event) { + static swap_state_row_t swap_state[MATRIX_ROWS]; + + keypos_t pos = event->key; + swap_state_row_t col_bit = (swap_state_row_t)1<<pos.col; + bool do_swap = event->pressed ? swap_hands : + swap_state[pos.row] & (col_bit); + + if (do_swap) { + event->key = hand_swap_config[pos.row][pos.col]; + swap_state[pos.row] |= col_bit; + } else { + swap_state[pos.row] &= ~(col_bit); + } +} +#endif + #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) bool disable_action_cache = false; @@ -440,6 +466,54 @@ void process_action(keyrecord_t *record, action_t action) #endif case ACT_COMMAND: break; +#ifdef ONEHAND_ENABLE + case ACT_SWAP_HANDS: + switch (action.swap.code) { + case OP_SH_TOGGLE: + if (event.pressed) { + swap_hands = !swap_hands; + } + break; + case OP_SH_ON_OFF: + swap_hands = event.pressed; + break; + case OP_SH_OFF_ON: + swap_hands = !event.pressed; + break; + case OP_SH_ON: + if (!event.pressed) { + swap_hands = true; + } + break; + case OP_SH_OFF: + if (!event.pressed) { + swap_hands = false; + } + break; + #ifndef NO_ACTION_TAPPING + case OP_SH_TAP_TOGGLE: + /* tap toggle */ + if (tap_count > 0) { + if (!event.pressed) { + swap_hands = !swap_hands; + } + } else { + swap_hands = event.pressed; + } + break; + default: + if (tap_count > 0) { + if (event.pressed) { + register_code(action.swap.code); + } else { + unregister_code(action.swap.code); + } + } else { + swap_hands = event.pressed; + } + #endif + } +#endif #ifndef NO_ACTION_FUNCTION case ACT_FUNCTION: action_function(record, action.func.id, action.func.opt); @@ -652,6 +726,13 @@ bool is_tap_key(keypos_t key) return true; } return false; + case ACT_SWAP_HANDS: + switch (action.swap.code) { + case 0x00 ... 0xdf: + case OP_SH_TAP_TOGGLE: + return true; + } + return false; case ACT_MACRO: case ACT_FUNCTION: if (action.func.opt & FUNC_TAP) { return true; } @@ -692,6 +773,7 @@ void debug_action(action_t action) case ACT_MACRO: dprint("ACT_MACRO"); break; case ACT_COMMAND: dprint("ACT_COMMAND"); break; case ACT_FUNCTION: dprint("ACT_FUNCTION"); break; + case ACT_SWAP_HANDS: dprint("ACT_SWAP_HANDS"); break; default: dprint("UNKNOWN"); break; } dprintf("[%X:%02X]", action.kind.param>>8, action.kind.param&0xff); diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index e8aa12a7cb..b9bdfe642c 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -65,6 +65,24 @@ bool process_record_quantum(keyrecord_t *record); #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) extern bool disable_action_cache; #endif + +/* Code for handling one-handed key modifiers. */ +#ifdef ONEHAND_ENABLE +extern bool swap_hands; +extern const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS]; +#if (MATRIX_COLS <= 8) +typedef uint8_t swap_state_row_t; +#elif (MATRIX_COLS <= 16) +typedef uint16_t swap_state_row_t; +#elif (MATRIX_COLS <= 32) +typedef uint32_t swap_state_row_t; +#else +#error "MATRIX_COLS: invalid value" +#endif + +void process_hand_swap(keyevent_t *record); +#endif + void process_record_nocache(keyrecord_t *record); void process_record(keyrecord_t *record); void process_action(keyrecord_t *record, action_t action); diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index ca729aaece..33da35f35f 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -108,6 +108,8 @@ enum action_kind_id { /* Other Keys */ ACT_USAGE = 0b0100, ACT_MOUSEKEY = 0b0101, + /* One-hand Support */ + ACT_SWAP_HANDS = 0b0110, /* Layer Actions */ ACT_LAYER = 0b1000, ACT_LAYER_TAP = 0b1010, /* Layer 0-15 */ @@ -178,6 +180,11 @@ typedef union { uint8_t opt :4; uint8_t kind :4; } func; + struct action_swap { + uint8_t code :8; + uint8_t opt :4; + uint8_t kind :4; + } swap; } action_t; @@ -295,6 +302,7 @@ enum backlight_opt { BACKLIGHT_STEP = 3, BACKLIGHT_LEVEL = 4, }; + /* Macro */ #define ACTION_MACRO(id) ACTION(ACT_MACRO, (id)) #define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP<<8 | (id)) @@ -306,7 +314,7 @@ enum backlight_opt { #define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8) #define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level)) /* Command */ -#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (addr)) +#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (id)) /* Function */ enum function_opts { FUNC_TAP = 0x8, /* indciates function is tappable */ @@ -314,5 +322,23 @@ enum function_opts { #define ACTION_FUNCTION(id) ACTION(ACT_FUNCTION, (id)) #define ACTION_FUNCTION_TAP(id) ACTION(ACT_FUNCTION, FUNC_TAP<<8 | (id)) #define ACTION_FUNCTION_OPT(id, opt) ACTION(ACT_FUNCTION, (opt)<<8 | (id)) +/* OneHand Support */ +enum swap_hands_pram_tap_op { + OP_SH_TOGGLE = 0xF0, + OP_SH_TAP_TOGGLE, + OP_SH_ON_OFF, + OP_SH_OFF_ON, + OP_SH_OFF, + OP_SH_ON, +}; + +#define ACTION_SWAP_HANDS() ACTION_SWAP_HANDS_ON_OFF() +#define ACTION_SWAP_HANDS_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TOGGLE) +#define ACTION_SWAP_HANDS_TAP_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TAP_TOGGLE) +#define ACTION_SWAP_HANDS_TAP_KEY(key) ACTION(ACT_SWAP_HANDS, key) +#define ACTION_SWAP_HANDS_ON_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_ON_OFF) +#define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON) +#define ACTION_SWAP_HANDS_ON() ACTION(ACT_SWAP_HANDS, OP_SH_ON) +#define ACTION_SWAP_HANDS_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_OFF) #endif /* ACTION_CODE_H */ diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 63fa2b5ae4..a3c7579642 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -111,7 +111,7 @@ void layer_debug(void) #endif #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) -uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {0}; +uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {{0}}; void update_source_layers_cache(keypos_t key, uint8_t layer) { diff --git a/tmk_core/common/avr/xprintf.S b/tmk_core/common/avr/xprintf.S index 0cec70ce22..06434b98d9 100644 --- a/tmk_core/common/avr/xprintf.S +++ b/tmk_core/common/avr/xprintf.S @@ -1,500 +1,500 @@ -;---------------------------------------------------------------------------;
-; Extended itoa, puts, printf and atoi (C)ChaN, 2011
-;---------------------------------------------------------------------------;
-
- // Base size is 152 bytes
-#define CR_CRLF 0 // Convert \n to \r\n (+10 bytes)
-#define USE_XPRINTF 1 // Enable xprintf function (+194 bytes)
-#define USE_XSPRINTF 0 // Add xsprintf function (+78 bytes)
-#define USE_XFPRINTF 0 // Add xfprintf function (+54 bytes)
-#define USE_XATOI 0 // Enable xatoi function (+182 bytes)
-
-
-#if FLASHEND > 0x1FFFF
-#error xitoa module does not support 256K devices
-#endif
-
-.nolist
-#include <avr/io.h> // Include device specific definitions.
-.list
-
-#ifdef SPM_PAGESIZE // Recent devices have "lpm Rd,Z+" and "movw".
-.macro _LPMI reg
- lpm \reg, Z+
-.endm
-.macro _MOVW dh,dl, sh,sl
- movw \dl, \sl
-.endm
-#else // Earlier devices do not have "lpm Rd,Z+" nor "movw".
-.macro _LPMI reg
- lpm
- mov \reg, r0
- adiw ZL, 1
-.endm
-.macro _MOVW dh,dl, sh,sl
- mov \dl, \sl
- mov \dh, \sh
-.endm
-#endif
-
-
-
-;---------------------------------------------------------------------------
-; Stub function to forward to user output function
-;
-;Prototype: void xputc (char chr // a character to be output
-; );
-;Size: 12/12 words
-
-.section .bss
-.global xfunc_out ; xfunc_out must be initialized before using this module.
-xfunc_out: .ds.w 1
-.section .text
-
-
-.func xputc
-.global xputc
-xputc:
-#if CR_CRLF
- cpi r24, 10 ;LF --> CRLF
- brne 1f ;
- ldi r24, 13 ;
- rcall 1f ;
- ldi r24, 10 ;/
-1:
-#endif
- push ZH
- push ZL
- lds ZL, xfunc_out+0 ;Pointer to the registered output function.
- lds ZH, xfunc_out+1 ;/
- sbiw ZL, 0 ;Skip if null
- breq 2f ;/
- icall
-2: pop ZL
- pop ZH
- ret
-.endfunc
-
-
-
-;---------------------------------------------------------------------------
-; Direct ROM string output
-;
-;Prototype: void xputs (const char *str_p // rom string to be output
-; );
-
-.func xputs
-.global xputs
-xputs:
- _MOVW ZH,ZL, r25,r24 ; Z = pointer to rom string
-1: _LPMI r24
- cpi r24, 0
- breq 2f
- rcall xputc
- rjmp 1b
-2: ret
-.endfunc
-
-
-;---------------------------------------------------------------------------
-; Extended direct numeral string output (32bit version)
-;
-;Prototype: void xitoa (long value, // value to be output
-; char radix, // radix
-; char width); // minimum width
-;
-
-.func xitoa
-.global xitoa
-xitoa:
- ;r25:r22 = value, r20 = base, r18 = digits
- clr r31 ;r31 = stack level
- ldi r30, ' ' ;r30 = sign
- ldi r19, ' ' ;r19 = filler
- sbrs r20, 7 ;When base indicates signd format and the value
- rjmp 0f ;is minus, add a '-'.
- neg r20 ;
- sbrs r25, 7 ;
- rjmp 0f ;
- ldi r30, '-' ;
- com r22 ;
- com r23 ;
- com r24 ;
- com r25 ;
- adc r22, r1 ;
- adc r23, r1 ;
- adc r24, r1 ;
- adc r25, r1 ;/
-0: sbrs r18, 7 ;When digits indicates zero filled,
- rjmp 1f ;filler is '0'.
- neg r18 ;
- ldi r19, '0' ;/
- ;----- string conversion loop
-1: ldi r21, 32 ;r26 = r25:r22 % r20
- clr r26 ;r25:r22 /= r20
-2: lsl r22 ;
- rol r23 ;
- rol r24 ;
- rol r25 ;
- rol r26 ;
- cp r26, r20 ;
- brcs 3f ;
- sub r26, r20 ;
- inc r22 ;
-3: dec r21 ;
- brne 2b ;/
- cpi r26, 10 ;r26 is a numeral digit '0'-'F'
- brcs 4f ;
- subi r26, -7 ;
-4: subi r26, -'0' ;/
- push r26 ;Stack it
- inc r31 ;/
- cp r22, r1 ;Repeat until r25:r22 gets zero
- cpc r23, r1 ;
- cpc r24, r1 ;
- cpc r25, r1 ;
- brne 1b ;/
-
- cpi r30, '-' ;Minus sign if needed
- brne 5f ;
- push r30 ;
- inc r31 ;/
-5: cp r31, r18 ;Filler
- brcc 6f ;
- push r19 ;
- inc r31 ;
- rjmp 5b ;/
-
-6: pop r24 ;Flush stacked digits and exit
- rcall xputc ;
- dec r31 ;
- brne 6b ;/
-
- ret
-.endfunc
-
-
-
-;---------------------------------------------------------------------------;
-; Formatted string output (16/32bit version)
-;
-;Prototype:
-; void __xprintf (const char *format_p, ...);
-; void __xsprintf(char*, const char *format_p, ...);
-; void __xfprintf(void(*func)(char), const char *format_p, ...);
-;
-
-#if USE_XPRINTF
-
-.func xvprintf
-xvprintf:
- ld ZL, Y+ ;Z = pointer to format string
- ld ZH, Y+ ;/
-
-0: _LPMI r24 ;Get a format char
- cpi r24, 0 ;End of format string?
- breq 90f ;/
- cpi r24, '%' ;Is format?
- breq 20f ;/
-1: rcall xputc ;Put a normal character
- rjmp 0b ;/
-90: ret
-
-20: ldi r18, 0 ;r18: digits
- clt ;T: filler
- _LPMI r21 ;Get flags
- cpi r21, '%' ;Is a %?
- breq 1b ;/
- cpi r21, '0' ;Zero filled?
- brne 23f ;
- set ;/
-22: _LPMI r21 ;Get width
-23: cpi r21, '9'+1 ;
- brcc 24f ;
- subi r21, '0' ;
- brcs 90b ;
- lsl r18 ;
- mov r0, r18 ;
- lsl r18 ;
- lsl r18 ;
- add r18, r0 ;
- add r18, r21 ;
- rjmp 22b ;/
-
-24: brtc 25f ;get value (low word)
- neg r18 ;
-25: ld r24, Y+ ;
- ld r25, Y+ ;/
- cpi r21, 'c' ;Is type character?
- breq 1b ;/
- cpi r21, 's' ;Is type RAM string?
- breq 50f ;/
- cpi r21, 'S' ;Is type ROM string?
- breq 60f ;/
- _MOVW r23,r22,r25,r24 ;r25:r22 = value
- clr r24 ;
- clr r25 ;
- clt ;/
- cpi r21, 'l' ;Is long int?
- brne 26f ;
- ld r24, Y+ ;get value (high word)
- ld r25, Y+ ;
- set ;
- _LPMI r21 ;/
-26: cpi r21, 'd' ;Is type signed decimal?
- brne 27f ;/
- ldi r20, -10 ;
- brts 40f ;
- sbrs r23, 7 ;
- rjmp 40f ;
- ldi r24, -1 ;
- ldi r25, -1 ;
- rjmp 40f ;/
-27: cpi r21, 'u' ;Is type unsigned decimal?
- ldi r20, 10 ;
- breq 40f ;/
- cpi r21, 'X' ;Is type hexdecimal?
- ldi r20, 16 ;
- breq 40f ;/
- cpi r21, 'b' ;Is type binary?
- ldi r20, 2 ;
- breq 40f ;/
- ret ;abort
-40: push ZH ;Output the value
- push ZL ;
- rcall xitoa ;
-42: pop ZL ;
- pop ZH ;
- rjmp 0b ;/
-
-50: push ZH ;Put a string on the RAM
- push ZL
- _MOVW ZH,ZL, r25,r24
-51: ld r24, Z+
- cpi r24, 0
- breq 42b
- rcall xputc
- rjmp 51b
-
-60: push ZH ;Put a string on the ROM
- push ZL
- rcall xputs
- rjmp 42b
-.endfunc
-
-
-.func __xprintf
-.global __xprintf
-__xprintf:
- push YH
- push YL
- in YL, _SFR_IO_ADDR(SPL)
-#ifdef SPH
- in YH, _SFR_IO_ADDR(SPH)
-#else
- clr YH
-#endif
- adiw YL, 5 ;Y = pointer to arguments
- rcall xvprintf
- pop YL
- pop YH
- ret
-.endfunc
-
-
-#if USE_XSPRINTF
-
-.func __xsprintf
-putram:
- _MOVW ZH,ZL, r15,r14
- st Z+, r24
- _MOVW r15,r14, ZH,ZL
- ret
-.global __xsprintf
-__xsprintf:
- push YH
- push YL
- in YL, _SFR_IO_ADDR(SPL)
-#ifdef SPH
- in YH, _SFR_IO_ADDR(SPH)
-#else
- clr YH
-#endif
- adiw YL, 5 ;Y = pointer to arguments
- lds ZL, xfunc_out+0 ;Save registered output function
- lds ZH, xfunc_out+1 ;
- push ZL ;
- push ZH ;/
- ldi ZL, lo8(pm(putram));Set local output function
- ldi ZH, hi8(pm(putram));
- sts xfunc_out+0, ZL ;
- sts xfunc_out+1, ZH ;/
- push r15 ;Initialize pointer to string buffer
- push r14 ;
- ld r14, Y+ ;
- ld r15, Y+ ;/
- rcall xvprintf
- _MOVW ZH,ZL, r15,r14 ;Terminate string
- st Z, r1 ;
- pop r14 ;
- pop r15 ;/
- pop ZH ;Restore registered output function
- pop ZL ;
- sts xfunc_out+0, ZL ;
- sts xfunc_out+1, ZH ;/
- pop YL
- pop YH
- ret
-.endfunc
-#endif
-
-
-#if USE_XFPRINTF
-.func __xfprintf
-.global __xfprintf
-__xfprintf:
- push YH
- push YL
- in YL, _SFR_IO_ADDR(SPL)
-#ifdef SPH
- in YH, _SFR_IO_ADDR(SPH)
-#else
- clr YH
-#endif
- adiw YL, 5 ;Y = pointer to arguments
- lds ZL, xfunc_out+0 ;Save registered output function
- lds ZH, xfunc_out+1 ;
- push ZL ;
- push ZH ;/
- ld ZL, Y+ ;Set output function
- ld ZH, Y+ ;
- sts xfunc_out+0, ZL ;
- sts xfunc_out+1, ZH ;/
- rcall xvprintf
- pop ZH ;Restore registered output function
- pop ZL ;
- sts xfunc_out+0, ZL ;
- sts xfunc_out+1, ZH ;/
- pop YL
- pop YH
- ret
-.endfunc
-#endif
-
-#endif
-
-
-
-;---------------------------------------------------------------------------
-; Extended numeral string input
-;
-;Prototype:
-; char xatoi ( /* 1: Successful, 0: Failed */
-; const char **str, /* pointer to pointer to source string */
-; long *res /* result */
-; );
-;
-
-
-#if USE_XATOI
-.func xatoi
-.global xatoi
-xatoi:
- _MOVW r1, r0, r23, r22
- _MOVW XH, XL, r25, r24
- ld ZL, X+
- ld ZH, X+
- clr r18 ;r21:r18 = 0;
- clr r19 ;
- clr r20 ;
- clr r21 ;/
- clt ;T = 0;
-
- ldi r25, 10 ;r25 = 10;
- rjmp 41f ;/
-40: adiw ZL, 1 ;Z++;
-41: ld r22, Z ;r22 = *Z;
- cpi r22, ' ' ;if(r22 == ' ') continue
- breq 40b ;/
- brcs 70f ;if(r22 < ' ') error;
- cpi r22, '-' ;if(r22 == '-') {
- brne 42f ; T = 1;
- set ; continue;
- rjmp 40b ;}
-42: cpi r22, '9'+1 ;if(r22 > '9') error;
- brcc 70f ;/
- cpi r22, '0' ;if(r22 < '0') error;
- brcs 70f ;/
- brne 51f ;if(r22 > '0') cv_start;
- ldi r25, 8 ;r25 = 8;
- adiw ZL, 1 ;r22 = *(++Z);
- ld r22, Z ;/
- cpi r22, ' '+1 ;if(r22 <= ' ') exit;
- brcs 80f ;/
- cpi r22, 'b' ;if(r22 == 'b') {
- brne 43f ; r25 = 2;
- ldi r25, 2 ; cv_start;
- rjmp 50f ;}
-43: cpi r22, 'x' ;if(r22 != 'x') error;
- brne 51f ;/
- ldi r25, 16 ;r25 = 16;
-
-50: adiw ZL, 1 ;Z++;
- ld r22, Z ;r22 = *Z;
-51: cpi r22, ' '+1 ;if(r22 <= ' ') break;
- brcs 80f ;/
- cpi r22, 'a' ;if(r22 >= 'a') r22 =- 0x20;
- brcs 52f ;
- subi r22, 0x20 ;/
-52: subi r22, '0' ;if((r22 -= '0') < 0) error;
- brcs 70f ;/
- cpi r22, 10 ;if(r22 >= 10) {
- brcs 53f ; r22 -= 7;
- subi r22, 7 ; if(r22 < 10)
- cpi r22, 10 ;
- brcs 70f ;}
-53: cp r22, r25 ;if(r22 >= r25) error;
- brcc 70f ;/
-60: ldi r24, 33 ;r21:r18 *= r25;
- sub r23, r23 ;
-61: brcc 62f ;
- add r23, r25 ;
-62: lsr r23 ;
- ror r21 ;
- ror r20 ;
- ror r19 ;
- ror r18 ;
- dec r24 ;
- brne 61b ;/
- add r18, r22 ;r21:r18 += r22;
- adc r19, r24 ;
- adc r20, r24 ;
- adc r21, r24 ;/
- rjmp 50b ;repeat
-
-70: ldi r24, 0
- rjmp 81f
-80: ldi r24, 1
-81: brtc 82f
- clr r22
- com r18
- com r19
- com r20
- com r21
- adc r18, r22
- adc r19, r22
- adc r20, r22
- adc r21, r22
-82: st -X, ZH
- st -X, ZL
- _MOVW XH, XL, r1, r0
- st X+, r18
- st X+, r19
- st X+, r20
- st X+, r21
- clr r1
- ret
-.endfunc
-#endif
-
-
+;---------------------------------------------------------------------------; +; Extended itoa, puts, printf and atoi (C)ChaN, 2011 +;---------------------------------------------------------------------------; + + // Base size is 152 bytes +#define CR_CRLF 0 // Convert \n to \r\n (+10 bytes) +#define USE_XPRINTF 1 // Enable xprintf function (+194 bytes) +#define USE_XSPRINTF 0 // Add xsprintf function (+78 bytes) +#define USE_XFPRINTF 0 // Add xfprintf function (+54 bytes) +#define USE_XATOI 0 // Enable xatoi function (+182 bytes) + + +#if FLASHEND > 0x1FFFF +#error xitoa module does not support 256K devices +#endif + +.nolist +#include <avr/io.h> // Include device specific definitions. +.list + +#ifdef SPM_PAGESIZE // Recent devices have "lpm Rd,Z+" and "movw". +.macro _LPMI reg + lpm \reg, Z+ +.endm +.macro _MOVW dh,dl, sh,sl + movw \dl, \sl +.endm +#else // Earlier devices do not have "lpm Rd,Z+" nor "movw". +.macro _LPMI reg + lpm + mov \reg, r0 + adiw ZL, 1 +.endm +.macro _MOVW dh,dl, sh,sl + mov \dl, \sl + mov \dh, \sh +.endm +#endif + + + +;--------------------------------------------------------------------------- +; Stub function to forward to user output function +; +;Prototype: void xputc (char chr // a character to be output +; ); +;Size: 12/12 words + +.section .bss +.global xfunc_out ; xfunc_out must be initialized before using this module. +xfunc_out: .ds.w 1 +.section .text + + +.func xputc +.global xputc +xputc: +#if CR_CRLF + cpi r24, 10 ;LF --> CRLF + brne 1f ; + ldi r24, 13 ; + rcall 1f ; + ldi r24, 10 ;/ +1: +#endif + push ZH + push ZL + lds ZL, xfunc_out+0 ;Pointer to the registered output function. + lds ZH, xfunc_out+1 ;/ + sbiw ZL, 0 ;Skip if null + breq 2f ;/ + icall +2: pop ZL + pop ZH + ret +.endfunc + + + +;--------------------------------------------------------------------------- +; Direct ROM string output +; +;Prototype: void xputs (const char *str_p // rom string to be output +; ); + +.func xputs +.global xputs +xputs: + _MOVW ZH,ZL, r25,r24 ; Z = pointer to rom string +1: _LPMI r24 + cpi r24, 0 + breq 2f + rcall xputc + rjmp 1b +2: ret +.endfunc + + +;--------------------------------------------------------------------------- +; Extended direct numeral string output (32bit version) +; +;Prototype: void xitoa (long value, // value to be output +; char radix, // radix +; char width); // minimum width +; + +.func xitoa +.global xitoa +xitoa: + ;r25:r22 = value, r20 = base, r18 = digits + clr r31 ;r31 = stack level + ldi r30, ' ' ;r30 = sign + ldi r19, ' ' ;r19 = filler + sbrs r20, 7 ;When base indicates signd format and the value + rjmp 0f ;is minus, add a '-'. + neg r20 ; + sbrs r25, 7 ; + rjmp 0f ; + ldi r30, '-' ; + com r22 ; + com r23 ; + com r24 ; + com r25 ; + adc r22, r1 ; + adc r23, r1 ; + adc r24, r1 ; + adc r25, r1 ;/ +0: sbrs r18, 7 ;When digits indicates zero filled, + rjmp 1f ;filler is '0'. + neg r18 ; + ldi r19, '0' ;/ + ;----- string conversion loop +1: ldi r21, 32 ;r26 = r25:r22 % r20 + clr r26 ;r25:r22 /= r20 +2: lsl r22 ; + rol r23 ; + rol r24 ; + rol r25 ; + rol r26 ; + cp r26, r20 ; + brcs 3f ; + sub r26, r20 ; + inc r22 ; +3: dec r21 ; + brne 2b ;/ + cpi r26, 10 ;r26 is a numeral digit '0'-'F' + brcs 4f ; + subi r26, -7 ; +4: subi r26, -'0' ;/ + push r26 ;Stack it + inc r31 ;/ + cp r22, r1 ;Repeat until r25:r22 gets zero + cpc r23, r1 ; + cpc r24, r1 ; + cpc r25, r1 ; + brne 1b ;/ + + cpi r30, '-' ;Minus sign if needed + brne 5f ; + push r30 ; + inc r31 ;/ +5: cp r31, r18 ;Filler + brcc 6f ; + push r19 ; + inc r31 ; + rjmp 5b ;/ + +6: pop r24 ;Flush stacked digits and exit + rcall xputc ; + dec r31 ; + brne 6b ;/ + + ret +.endfunc + + + +;---------------------------------------------------------------------------; +; Formatted string output (16/32bit version) +; +;Prototype: +; void __xprintf (const char *format_p, ...); +; void __xsprintf(char*, const char *format_p, ...); +; void __xfprintf(void(*func)(char), const char *format_p, ...); +; + +#if USE_XPRINTF + +.func xvprintf +xvprintf: + ld ZL, Y+ ;Z = pointer to format string + ld ZH, Y+ ;/ + +0: _LPMI r24 ;Get a format char + cpi r24, 0 ;End of format string? + breq 90f ;/ + cpi r24, '%' ;Is format? + breq 20f ;/ +1: rcall xputc ;Put a normal character + rjmp 0b ;/ +90: ret + +20: ldi r18, 0 ;r18: digits + clt ;T: filler + _LPMI r21 ;Get flags + cpi r21, '%' ;Is a %? + breq 1b ;/ + cpi r21, '0' ;Zero filled? + brne 23f ; + set ;/ +22: _LPMI r21 ;Get width +23: cpi r21, '9'+1 ; + brcc 24f ; + subi r21, '0' ; + brcs 90b ; + lsl r18 ; + mov r0, r18 ; + lsl r18 ; + lsl r18 ; + add r18, r0 ; + add r18, r21 ; + rjmp 22b ;/ + +24: brtc 25f ;get value (low word) + neg r18 ; +25: ld r24, Y+ ; + ld r25, Y+ ;/ + cpi r21, 'c' ;Is type character? + breq 1b ;/ + cpi r21, 's' ;Is type RAM string? + breq 50f ;/ + cpi r21, 'S' ;Is type ROM string? + breq 60f ;/ + _MOVW r23,r22,r25,r24 ;r25:r22 = value + clr r24 ; + clr r25 ; + clt ;/ + cpi r21, 'l' ;Is long int? + brne 26f ; + ld r24, Y+ ;get value (high word) + ld r25, Y+ ; + set ; + _LPMI r21 ;/ +26: cpi r21, 'd' ;Is type signed decimal? + brne 27f ;/ + ldi r20, -10 ; + brts 40f ; + sbrs r23, 7 ; + rjmp 40f ; + ldi r24, -1 ; + ldi r25, -1 ; + rjmp 40f ;/ +27: cpi r21, 'u' ;Is type unsigned decimal? + ldi r20, 10 ; + breq 40f ;/ + cpi r21, 'X' ;Is type hexdecimal? + ldi r20, 16 ; + breq 40f ;/ + cpi r21, 'b' ;Is type binary? + ldi r20, 2 ; + breq 40f ;/ + ret ;abort +40: push ZH ;Output the value + push ZL ; + rcall xitoa ; +42: pop ZL ; + pop ZH ; + rjmp 0b ;/ + +50: push ZH ;Put a string on the RAM + push ZL + _MOVW ZH,ZL, r25,r24 +51: ld r24, Z+ + cpi r24, 0 + breq 42b + rcall xputc + rjmp 51b + +60: push ZH ;Put a string on the ROM + push ZL + rcall xputs + rjmp 42b +.endfunc + + +.func __xprintf +.global __xprintf +__xprintf: + push YH + push YL + in YL, _SFR_IO_ADDR(SPL) +#ifdef SPH + in YH, _SFR_IO_ADDR(SPH) +#else + clr YH +#endif + adiw YL, 5 ;Y = pointer to arguments + rcall xvprintf + pop YL + pop YH + ret +.endfunc + + +#if USE_XSPRINTF + +.func __xsprintf +putram: + _MOVW ZH,ZL, r15,r14 + st Z+, r24 + _MOVW r15,r14, ZH,ZL + ret +.global __xsprintf +__xsprintf: + push YH + push YL + in YL, _SFR_IO_ADDR(SPL) +#ifdef SPH + in YH, _SFR_IO_ADDR(SPH) +#else + clr YH +#endif + adiw YL, 5 ;Y = pointer to arguments + lds ZL, xfunc_out+0 ;Save registered output function + lds ZH, xfunc_out+1 ; + push ZL ; + push ZH ;/ + ldi ZL, lo8(pm(putram));Set local output function + ldi ZH, hi8(pm(putram)); + sts xfunc_out+0, ZL ; + sts xfunc_out+1, ZH ;/ + push r15 ;Initialize pointer to string buffer + push r14 ; + ld r14, Y+ ; + ld r15, Y+ ;/ + rcall xvprintf + _MOVW ZH,ZL, r15,r14 ;Terminate string + st Z, r1 ; + pop r14 ; + pop r15 ;/ + pop ZH ;Restore registered output function + pop ZL ; + sts xfunc_out+0, ZL ; + sts xfunc_out+1, ZH ;/ + pop YL + pop YH + ret +.endfunc +#endif + + +#if USE_XFPRINTF +.func __xfprintf +.global __xfprintf +__xfprintf: + push YH + push YL + in YL, _SFR_IO_ADDR(SPL) +#ifdef SPH + in YH, _SFR_IO_ADDR(SPH) +#else + clr YH +#endif + adiw YL, 5 ;Y = pointer to arguments + lds ZL, xfunc_out+0 ;Save registered output function + lds ZH, xfunc_out+1 ; + push ZL ; + push ZH ;/ + ld ZL, Y+ ;Set output function + ld ZH, Y+ ; + sts xfunc_out+0, ZL ; + sts xfunc_out+1, ZH ;/ + rcall xvprintf + pop ZH ;Restore registered output function + pop ZL ; + sts xfunc_out+0, ZL ; + sts xfunc_out+1, ZH ;/ + pop YL + pop YH + ret +.endfunc +#endif + +#endif + + + +;--------------------------------------------------------------------------- +; Extended numeral string input +; +;Prototype: +; char xatoi ( /* 1: Successful, 0: Failed */ +; const char **str, /* pointer to pointer to source string */ +; long *res /* result */ +; ); +; + + +#if USE_XATOI +.func xatoi +.global xatoi +xatoi: + _MOVW r1, r0, r23, r22 + _MOVW XH, XL, r25, r24 + ld ZL, X+ + ld ZH, X+ + clr r18 ;r21:r18 = 0; + clr r19 ; + clr r20 ; + clr r21 ;/ + clt ;T = 0; + + ldi r25, 10 ;r25 = 10; + rjmp 41f ;/ +40: adiw ZL, 1 ;Z++; +41: ld r22, Z ;r22 = *Z; + cpi r22, ' ' ;if(r22 == ' ') continue + breq 40b ;/ + brcs 70f ;if(r22 < ' ') error; + cpi r22, '-' ;if(r22 == '-') { + brne 42f ; T = 1; + set ; continue; + rjmp 40b ;} +42: cpi r22, '9'+1 ;if(r22 > '9') error; + brcc 70f ;/ + cpi r22, '0' ;if(r22 < '0') error; + brcs 70f ;/ + brne 51f ;if(r22 > '0') cv_start; + ldi r25, 8 ;r25 = 8; + adiw ZL, 1 ;r22 = *(++Z); + ld r22, Z ;/ + cpi r22, ' '+1 ;if(r22 <= ' ') exit; + brcs 80f ;/ + cpi r22, 'b' ;if(r22 == 'b') { + brne 43f ; r25 = 2; + ldi r25, 2 ; cv_start; + rjmp 50f ;} +43: cpi r22, 'x' ;if(r22 != 'x') error; + brne 51f ;/ + ldi r25, 16 ;r25 = 16; + +50: adiw ZL, 1 ;Z++; + ld r22, Z ;r22 = *Z; +51: cpi r22, ' '+1 ;if(r22 <= ' ') break; + brcs 80f ;/ + cpi r22, 'a' ;if(r22 >= 'a') r22 =- 0x20; + brcs 52f ; + subi r22, 0x20 ;/ +52: subi r22, '0' ;if((r22 -= '0') < 0) error; + brcs 70f ;/ + cpi r22, 10 ;if(r22 >= 10) { + brcs 53f ; r22 -= 7; + subi r22, 7 ; if(r22 < 10) + cpi r22, 10 ; + brcs 70f ;} +53: cp r22, r25 ;if(r22 >= r25) error; + brcc 70f ;/ +60: ldi r24, 33 ;r21:r18 *= r25; + sub r23, r23 ; +61: brcc 62f ; + add r23, r25 ; +62: lsr r23 ; + ror r21 ; + ror r20 ; + ror r19 ; + ror r18 ; + dec r24 ; + brne 61b ;/ + add r18, r22 ;r21:r18 += r22; + adc r19, r24 ; + adc r20, r24 ; + adc r21, r24 ;/ + rjmp 50b ;repeat + +70: ldi r24, 0 + rjmp 81f +80: ldi r24, 1 +81: brtc 82f + clr r22 + com r18 + com r19 + com r20 + com r21 + adc r18, r22 + adc r19, r22 + adc r20, r22 + adc r21, r22 +82: st -X, ZH + st -X, ZL + _MOVW XH, XL, r1, r0 + st X+, r18 + st X+, r19 + st X+, r20 + st X+, r21 + clr r1 + ret +.endfunc +#endif + + diff --git a/tmk_core/common/avr/xprintf.h b/tmk_core/common/avr/xprintf.h index 59c6f25312..e53c0dd8e0 100644 --- a/tmk_core/common/avr/xprintf.h +++ b/tmk_core/common/avr/xprintf.h @@ -1,111 +1,111 @@ -/*---------------------------------------------------------------------------
- Extended itoa, puts and printf (C)ChaN, 2011
------------------------------------------------------------------------------*/
-
-#ifndef XPRINTF_H
-#define XPRINTF_H
-
-#include <inttypes.h>
-#include <avr/pgmspace.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void (*xfunc_out)(uint8_t);
-#define xdev_out(func) xfunc_out = (void(*)(uint8_t))(func)
-
-/* This is a pointer to user defined output function. It must be initialized
- before using this modle.
-*/
-
-void xputc(char chr);
-
-/* This is a stub function to forward outputs to user defined output function.
- All outputs from this module are output via this function.
-*/
-
-
-/*-----------------------------------------------------------------------------*/
-void xputs(const char *string_p);
-
-/* The string placed in the ROM is forwarded to xputc() directly.
-*/
-
-
-/*-----------------------------------------------------------------------------*/
-void xitoa(long value, char radix, char width);
-
-/* Extended itoa().
-
- value radix width output
- 100 10 6 " 100"
- 100 10 -6 "000100"
- 100 10 0 "100"
- 4294967295 10 0 "4294967295"
- 4294967295 -10 0 "-1"
- 655360 16 -8 "000A0000"
- 1024 16 0 "400"
- 0x55 2 -8 "01010101"
-*/
-
-
-/*-----------------------------------------------------------------------------*/
-#define xprintf(format, ...) __xprintf(PSTR(format), ##__VA_ARGS__)
-#define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__)
-#define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__)
-
-void __xprintf(const char *format_p, ...); /* Send formatted string to the registered device */
-void __xsprintf(char*, const char *format_p, ...); /* Put formatted string to the memory */
-void __xfprintf(void(*func)(uint8_t), const char *format_p, ...); /* Send formatted string to the specified device */
-
-/* Format string is placed in the ROM. The format flags is similar to printf().
-
- %[flag][width][size]type
-
- flag
- A '0' means filled with '0' when output is shorter than width.
- ' ' is used in default. This is effective only numeral type.
- width
- Minimum width in decimal number. This is effective only numeral type.
- Default width is zero.
- size
- A 'l' means the argument is long(32bit). Default is short(16bit).
- This is effective only numeral type.
- type
- 'c' : Character, argument is the value
- 's' : String placed on the RAM, argument is the pointer
- 'S' : String placed on the ROM, argument is the pointer
- 'd' : Signed decimal, argument is the value
- 'u' : Unsigned decimal, argument is the value
- 'X' : Hexdecimal, argument is the value
- 'b' : Binary, argument is the value
- '%' : '%'
-
-*/
-
-
-/*-----------------------------------------------------------------------------*/
-char xatoi(char **str, long *ret);
-
-/* Get value of the numeral string.
-
- str
- Pointer to pointer to source string
-
- "0b11001010" binary
- "0377" octal
- "0xff800" hexdecimal
- "1250000" decimal
- "-25000" decimal
-
- ret
- Pointer to return value
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
+/*--------------------------------------------------------------------------- + Extended itoa, puts and printf (C)ChaN, 2011 +-----------------------------------------------------------------------------*/ + +#ifndef XPRINTF_H +#define XPRINTF_H + +#include <inttypes.h> +#include <avr/pgmspace.h> + +#ifdef __cplusplus +extern "C" { +#endif + +extern void (*xfunc_out)(uint8_t); +#define xdev_out(func) xfunc_out = (void(*)(uint8_t))(func) + +/* This is a pointer to user defined output function. It must be initialized + before using this modle. +*/ + +void xputc(char chr); + +/* This is a stub function to forward outputs to user defined output function. + All outputs from this module are output via this function. +*/ + + +/*-----------------------------------------------------------------------------*/ +void xputs(const char *string_p); + +/* The string placed in the ROM is forwarded to xputc() directly. +*/ + + +/*-----------------------------------------------------------------------------*/ +void xitoa(long value, char radix, char width); + +/* Extended itoa(). + + value radix width output + 100 10 6 " 100" + 100 10 -6 "000100" + 100 10 0 "100" + 4294967295 10 0 "4294967295" + 4294967295 -10 0 "-1" + 655360 16 -8 "000A0000" + 1024 16 0 "400" + 0x55 2 -8 "01010101" +*/ + + +/*-----------------------------------------------------------------------------*/ +#define xprintf(format, ...) __xprintf(PSTR(format), ##__VA_ARGS__) +#define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__) +#define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__) + +void __xprintf(const char *format_p, ...); /* Send formatted string to the registered device */ +void __xsprintf(char*, const char *format_p, ...); /* Put formatted string to the memory */ +void __xfprintf(void(*func)(uint8_t), const char *format_p, ...); /* Send formatted string to the specified device */ + +/* Format string is placed in the ROM. The format flags is similar to printf(). + + %[flag][width][size]type + + flag + A '0' means filled with '0' when output is shorter than width. + ' ' is used in default. This is effective only numeral type. + width + Minimum width in decimal number. This is effective only numeral type. + Default width is zero. + size + A 'l' means the argument is long(32bit). Default is short(16bit). + This is effective only numeral type. + type + 'c' : Character, argument is the value + 's' : String placed on the RAM, argument is the pointer + 'S' : String placed on the ROM, argument is the pointer + 'd' : Signed decimal, argument is the value + 'u' : Unsigned decimal, argument is the value + 'X' : Hexdecimal, argument is the value + 'b' : Binary, argument is the value + '%' : '%' + +*/ + + +/*-----------------------------------------------------------------------------*/ +char xatoi(char **str, long *ret); + +/* Get value of the numeral string. + + str + Pointer to pointer to source string + + "0b11001010" binary + "0377" octal + "0xff800" hexdecimal + "1250000" decimal + "-25000" decimal + + ret + Pointer to return value +*/ + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index 084c9fe155..476fc6fe3c 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -34,6 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "command.h" #include "backlight.h" #include "quantum.h" +#include "version.h" #ifdef MOUSEKEY_ENABLE #include "mousekey.h" @@ -180,7 +181,7 @@ static void print_version(void) print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " "VER: " STR(DEVICE_VER) "\n"); - print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); + print("BUILD: " STR(QMK_VERSION) " (" __TIME__ " " __DATE__ ")\n"); /* build options */ print("OPTIONS:" diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 0368bcd4a1..a1352527fc 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -29,7 +29,9 @@ #include <stdbool.h> #include "util.h" - +#if defined(PROTOCOL_CHIBIOS) +#define PSTR(x) x +#endif #ifndef NO_PRINT diff --git a/tmk_core/common/virtser.h b/tmk_core/common/virtser.h new file mode 100644 index 0000000000..74891b6ae0 --- /dev/null +++ b/tmk_core/common/virtser.h @@ -0,0 +1,10 @@ +#ifndef _VIRTSER_H_ +#define _VIRTSER_H_ + +/* Define this function in your code to process incoming bytes */ +void virtser_recv(const uint8_t ch); + +/* Call this to send a character over the Virtual Serial Device */ +void virtser_send(const uint8_t byte); + +#endif diff --git a/tmk_core/native.mk b/tmk_core/native.mk new file mode 100644 index 0000000000..50232ee9b7 --- /dev/null +++ b/tmk_core/native.mk @@ -0,0 +1,24 @@ +CC = gcc +OBJCOPY = +OBJDUMP = +SIZE = +AR = +NM = +HEX = +EEP = +BIN = + + +COMPILEFLAGS += -funsigned-char +COMPILEFLAGS += -funsigned-bitfields +COMPILEFLAGS += -ffunction-sections +COMPILEFLAGS += -fdata-sections +COMPILEFLAGS += -fshort-enums + +CFLAGS += $(COMPILEFLAGS) +CFLAGS += -fno-inline-small-functions +CFLAGS += -fno-strict-aliasing + +CPPFLAGS += $(COMPILEFLAGS) +CPPFLAGS += -fno-exceptions +CPPFLAGS += -std=gnu++11
\ No newline at end of file diff --git a/tmk_core/protocol/iwrap/suart.S b/tmk_core/protocol/iwrap/suart.S index 1b02909638..a873515e10 100644 --- a/tmk_core/protocol/iwrap/suart.S +++ b/tmk_core/protocol/iwrap/suart.S @@ -1,156 +1,156 @@ -;---------------------------------------------------------------------------;
-; Software implemented UART module ;
-; (C)ChaN, 2005 (http://elm-chan.org/) ;
-;---------------------------------------------------------------------------;
-; Bit rate settings:
-;
-; 1MHz 2MHz 4MHz 6MHz 8MHz 10MHz 12MHz 16MHz 20MHz
-; 2.4kbps 138 - - - - - - - -
-; 4.8kbps 68 138 - - - - - - -
-; 9.6kbps 33 68 138 208 - - - - -
-; 19.2kbps - 33 68 102 138 173 208 - -
-; 38.4kbps - - 33 50 68 85 102 138 172
-; 57.6kbps - - 21 33 44 56 68 91 114
-; 115.2kbps - - - - 21 27 33 44 56
-
-.nolist
-#include <avr/io.h>
-.list
-
-#define BPS 102 /* Bit delay. (see above table) */
-#define BIDIR 0 /* 0:Separated Tx/Rx, 1:Shared Tx/Rx */
-
-#define OUT_1 sbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 1 */
-#define OUT_0 cbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 0 */
-#define SKIP_IN_1 sbis _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 1 */
-#define SKIP_IN_0 sbic _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 0 */
-
-
-
-#ifdef SPM_PAGESIZE
-.macro _LPMI reg
- lpm \reg, Z+
-.endm
-.macro _MOVW dh,dl, sh,sl
- movw \dl, \sl
-.endm
-#else
-.macro _LPMI reg
- lpm
- mov \reg, r0
- adiw ZL, 1
-.endm
-.macro _MOVW dh,dl, sh,sl
- mov \dl, \sl
- mov \dh, \sh
-.endm
-#endif
-
-
-
-;---------------------------------------------------------------------------;
-; Transmit a byte in serial format of N81
-;
-;Prototype: void xmit (uint8_t data);
-;Size: 16 words
-
-.global xmit
-.func xmit
-xmit:
-#if BIDIR
- ldi r23, BPS-1 ;Pre-idle time for bidirectional data line
-5: dec r23 ;
- brne 5b ;/
-#endif
- in r0, _SFR_IO_ADDR(SREG) ;Save flags
-
- com r24 ;C = start bit
- ldi r25, 10 ;Bit counter
- cli ;Start critical section
-
-1: ldi r23, BPS-1 ;----- Bit transferring loop
-2: dec r23 ;Wait for a bit time
- brne 2b ;/
- brcs 3f ;MISO = bit to be sent
- OUT_1 ;
-3: brcc 4f ;
- OUT_0 ;/
-4: lsr r24 ;Get next bit into C
- dec r25 ;All bits sent?
- brne 1b ; no, coutinue
-
- out _SFR_IO_ADDR(SREG), r0 ;End of critical section
- ret
-.endfunc
-
-
-
-;---------------------------------------------------------------------------;
-; Receive a byte
-;
-;Prototype: uint8_t rcvr (void);
-;Size: 19 words
-
-.global rcvr
-.func rcvr
-rcvr:
- in r0, _SFR_IO_ADDR(SREG) ;Save flags
-
- ldi r24, 0x80 ;Receiving shift reg
- cli ;Start critical section
-
-1: SKIP_IN_1 ;Wait for idle
- rjmp 1b
-2: SKIP_IN_0 ;Wait for start bit
- rjmp 2b
- ldi r25, BPS/2 ;Wait for half bit time
-3: dec r25
- brne 3b
-
-4: ldi r25, BPS ;----- Bit receiving loop
-5: dec r25 ;Wait for a bit time
- brne 5b ;/
- lsr r24 ;Next bit
- SKIP_IN_0 ;Get a data bit into r24.7
- ori r24, 0x80
- brcc 4b ;All bits received? no, continue
-
- out _SFR_IO_ADDR(SREG), r0 ;End of critical section
- ret
-.endfunc
-
-
-; Not wait for start bit. This should be called after detecting start bit.
-.global recv
-.func recv
-recv:
- in r0, _SFR_IO_ADDR(SREG) ;Save flags
-
- ldi r24, 0x80 ;Receiving shift reg
- cli ;Start critical section
-
-;1: SKIP_IN_1 ;Wait for idle
-; rjmp 1b
-;2: SKIP_IN_0 ;Wait for start bit
-; rjmp 2b
- ldi r25, BPS/2 ;Wait for half bit time
-3: dec r25
- brne 3b
-
-4: ldi r25, BPS ;----- Bit receiving loop
-5: dec r25 ;Wait for a bit time
- brne 5b ;/
- lsr r24 ;Next bit
- SKIP_IN_0 ;Get a data bit into r24.7
- ori r24, 0x80
- brcc 4b ;All bits received? no, continue
-
- ldi r25, BPS/2 ;Wait for half bit time
-6: dec r25
- brne 6b
-7: SKIP_IN_1 ;Wait for stop bit
- rjmp 7b
-
- out _SFR_IO_ADDR(SREG), r0 ;End of critical section
- ret
-.endfunc
+;---------------------------------------------------------------------------; +; Software implemented UART module ; +; (C)ChaN, 2005 (http://elm-chan.org/) ; +;---------------------------------------------------------------------------; +; Bit rate settings: +; +; 1MHz 2MHz 4MHz 6MHz 8MHz 10MHz 12MHz 16MHz 20MHz +; 2.4kbps 138 - - - - - - - - +; 4.8kbps 68 138 - - - - - - - +; 9.6kbps 33 68 138 208 - - - - - +; 19.2kbps - 33 68 102 138 173 208 - - +; 38.4kbps - - 33 50 68 85 102 138 172 +; 57.6kbps - - 21 33 44 56 68 91 114 +; 115.2kbps - - - - 21 27 33 44 56 + +.nolist +#include <avr/io.h> +.list + +#define BPS 102 /* Bit delay. (see above table) */ +#define BIDIR 0 /* 0:Separated Tx/Rx, 1:Shared Tx/Rx */ + +#define OUT_1 sbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 1 */ +#define OUT_0 cbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 0 */ +#define SKIP_IN_1 sbis _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 1 */ +#define SKIP_IN_0 sbic _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 0 */ + + + +#ifdef SPM_PAGESIZE +.macro _LPMI reg + lpm \reg, Z+ +.endm +.macro _MOVW dh,dl, sh,sl + movw \dl, \sl +.endm +#else +.macro _LPMI reg + lpm + mov \reg, r0 + adiw ZL, 1 +.endm +.macro _MOVW dh,dl, sh,sl + mov \dl, \sl + mov \dh, \sh +.endm +#endif + + + +;---------------------------------------------------------------------------; +; Transmit a byte in serial format of N81 +; +;Prototype: void xmit (uint8_t data); +;Size: 16 words + +.global xmit +.func xmit +xmit: +#if BIDIR + ldi r23, BPS-1 ;Pre-idle time for bidirectional data line +5: dec r23 ; + brne 5b ;/ +#endif + in r0, _SFR_IO_ADDR(SREG) ;Save flags + + com r24 ;C = start bit + ldi r25, 10 ;Bit counter + cli ;Start critical section + +1: ldi r23, BPS-1 ;----- Bit transferring loop +2: dec r23 ;Wait for a bit time + brne 2b ;/ + brcs 3f ;MISO = bit to be sent + OUT_1 ; +3: brcc 4f ; + OUT_0 ;/ +4: lsr r24 ;Get next bit into C + dec r25 ;All bits sent? + brne 1b ; no, coutinue + + out _SFR_IO_ADDR(SREG), r0 ;End of critical section + ret +.endfunc + + + +;---------------------------------------------------------------------------; +; Receive a byte +; +;Prototype: uint8_t rcvr (void); +;Size: 19 words + +.global rcvr +.func rcvr +rcvr: + in r0, _SFR_IO_ADDR(SREG) ;Save flags + + ldi r24, 0x80 ;Receiving shift reg + cli ;Start critical section + +1: SKIP_IN_1 ;Wait for idle + rjmp 1b +2: SKIP_IN_0 ;Wait for start bit + rjmp 2b + ldi r25, BPS/2 ;Wait for half bit time +3: dec r25 + brne 3b + +4: ldi r25, BPS ;----- Bit receiving loop +5: dec r25 ;Wait for a bit time + brne 5b ;/ + lsr r24 ;Next bit + SKIP_IN_0 ;Get a data bit into r24.7 + ori r24, 0x80 + brcc 4b ;All bits received? no, continue + + out _SFR_IO_ADDR(SREG), r0 ;End of critical section + ret +.endfunc + + +; Not wait for start bit. This should be called after detecting start bit. +.global recv +.func recv +recv: + in r0, _SFR_IO_ADDR(SREG) ;Save flags + + ldi r24, 0x80 ;Receiving shift reg + cli ;Start critical section + +;1: SKIP_IN_1 ;Wait for idle +; rjmp 1b +;2: SKIP_IN_0 ;Wait for start bit +; rjmp 2b + ldi r25, BPS/2 ;Wait for half bit time +3: dec r25 + brne 3b + +4: ldi r25, BPS ;----- Bit receiving loop +5: dec r25 ;Wait for a bit time + brne 5b ;/ + lsr r24 ;Next bit + SKIP_IN_0 ;Get a data bit into r24.7 + ori r24, 0x80 + brcc 4b ;All bits received? no, continue + + ldi r25, BPS/2 ;Wait for half bit time +6: dec r25 + brne 6b +7: SKIP_IN_1 ;Wait for stop bit + rjmp 7b + + out _SFR_IO_ADDR(SREG), r0 ;End of critical section + ret +.endfunc diff --git a/tmk_core/protocol/iwrap/suart.h b/tmk_core/protocol/iwrap/suart.h index 72725b998f..7d92be0692 100644 --- a/tmk_core/protocol/iwrap/suart.h +++ b/tmk_core/protocol/iwrap/suart.h @@ -1,8 +1,8 @@ -#ifndef SUART
-#define SUART
-
-void xmit(uint8_t);
-uint8_t rcvr(void);
-uint8_t recv(void);
-
-#endif /* SUART */
+#ifndef SUART +#define SUART + +void xmit(uint8_t); +uint8_t rcvr(void); +uint8_t recv(void); + +#endif /* SUART */ diff --git a/tmk_core/protocol/iwrap/wd.h b/tmk_core/protocol/iwrap/wd.h index 99058f0331..12395bf696 100644 --- a/tmk_core/protocol/iwrap/wd.h +++ b/tmk_core/protocol/iwrap/wd.h @@ -1,159 +1,159 @@ -/* This is from http://www.mtcnet.net/~henryvm/wdt/ */
-#ifndef _AVR_WD_H_
-#define _AVR_WD_H_
-
-#include <avr/io.h>
-
-/*
-Copyright (c) 2009, Curt Van Maanen
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-include usage-
- #include "wd.h" //if in same directory as project
- #include <avr/wd.h> //if wd.h is in avr directory
-
-set watchdog modes and prescale
-
-usage-
- WD_SET(mode,[timeout]); //prescale always set
-
-modes-
- WD_OFF disabled
- WD_RST normal reset mode
- WD_IRQ interrupt only mode (if supported)
- WD_RST_IRQ interrupt+reset mode (if supported)
-
-timeout-
- WDTO_15MS default if no timeout provided
- WDTO_30MS
- WDTO_60MS
- WDTO_120MS
- WDTO_250MS
- WDTO_500MS
- WDTO_1S
- WDTO_2S
- WDTO_4S (if supported)
- WDTO_8S (if supported)
-
-examples-
- WD_SET(WD_RST,WDTO_1S); //reset mode, 1s timeout
- WD_SET(WD_OFF); //watchdog disabled (if not fused on)
- WD_SET(WD_RST); //reset mode, 15ms (default timeout)
- WD_SET(WD_IRQ,WDTO_120MS); //interrupt only mode, 120ms timeout
- WD_SET(WD_RST_IRQ,WDTO_2S); //interrupt+reset mode, 2S timeout
-
-
-for enhanced watchdogs, if the watchdog is not being used WDRF should be
-cleared on every power up or reset, along with disabling the watchdog-
- WD_DISABLE(); //clear WDRF, then turn off watchdog
-
-*/
-
-//reset registers to the same name (MCUCSR)
-#if !defined(MCUCSR)
-#define MCUCSR MCUSR
-#endif
-
-//watchdog registers to the same name (WDTCSR)
-#if !defined(WDTCSR)
-#define WDTCSR WDTCR
-#endif
-
-//if enhanced watchdog, define irq values, create disable macro
-#if defined(WDIF)
-#define WD_IRQ 0xC0
-#define WD_RST_IRQ 0xC8
-#define WD_DISABLE() do{ \
- MCUCSR &= ~(1<<WDRF); \
- WD_SET(WD_OFF); \
- }while(0)
-#endif
-
-//all watchdogs
-#define WD_RST 8
-#define WD_OFF 0
-
-//prescale values
-#define WDTO_15MS 0
-#define WDTO_30MS 1
-#define WDTO_60MS 2
-#define WDTO_120MS 3
-#define WDTO_250MS 4
-#define WDTO_500MS 5
-#define WDTO_1S 6
-#define WDTO_2S 7
-
-//prescale values for avrs with WDP3
-#if defined(WDP3)
-#define WDTO_4S 0x20
-#define WDTO_8S 0x21
-#endif
-
-//watchdog reset
-#define WDR() __asm__ __volatile__("wdr")
-
-//avr reset using watchdog
-#define WD_AVR_RESET() do{ \
- __asm__ __volatile__("cli"); \
- WD_SET_UNSAFE(WD_RST); \
- while(1); \
- }while(0)
-
-/*set the watchdog-
-1. save SREG
-2. turn off irq's
-3. reset watchdog timer
-4. enable watchdog change
-5. write watchdog value
-6. restore SREG (restoring irq status)
-*/
-#define WD_SET(val,...) \
- __asm__ __volatile__( \
- "in __tmp_reg__,__SREG__" "\n\t" \
- "cli" "\n\t" \
- "wdr" "\n\t" \
- "sts %[wdreg],%[wden]" "\n\t" \
- "sts %[wdreg],%[wdval]" "\n\t" \
- "out __SREG__,__tmp_reg__" "\n\t" \
- : \
- : [wdreg] "M" (&WDTCSR), \
- [wden] "r" ((uint8_t)(0x18)), \
- [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
- : "r0" \
-)
-
-/*set the watchdog when I bit in SREG known to be clear-
-1. reset watchdog timer
-2. enable watchdog change
-5. write watchdog value
-*/
-#define WD_SET_UNSAFE(val,...) \
- __asm__ __volatile__( \
- "wdr" "\n\t" \
- "sts %[wdreg],%[wden]" "\n\t" \
- "sts %[wdreg],%[wdval]" "\n\t" \
- : \
- : [wdreg] "M" (&WDTCSR), \
- [wden] "r" ((uint8_t)(0x18)), \
- [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
-)
-
-
-//for compatibility with avr/wdt.h
-#define wdt_enable(val) WD_SET(WD_RST,val)
-#define wdt_disable() WD_SET(WD_OFF)
-
-
-#endif /* _AVR_WD_H_ */
+/* This is from http://www.mtcnet.net/~henryvm/wdt/ */ +#ifndef _AVR_WD_H_ +#define _AVR_WD_H_ + +#include <avr/io.h> + +/* +Copyright (c) 2009, Curt Van Maanen + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +include usage- + #include "wd.h" //if in same directory as project + #include <avr/wd.h> //if wd.h is in avr directory + +set watchdog modes and prescale + +usage- + WD_SET(mode,[timeout]); //prescale always set + +modes- + WD_OFF disabled + WD_RST normal reset mode + WD_IRQ interrupt only mode (if supported) + WD_RST_IRQ interrupt+reset mode (if supported) + +timeout- + WDTO_15MS default if no timeout provided + WDTO_30MS + WDTO_60MS + WDTO_120MS + WDTO_250MS + WDTO_500MS + WDTO_1S + WDTO_2S + WDTO_4S (if supported) + WDTO_8S (if supported) + +examples- + WD_SET(WD_RST,WDTO_1S); //reset mode, 1s timeout + WD_SET(WD_OFF); //watchdog disabled (if not fused on) + WD_SET(WD_RST); //reset mode, 15ms (default timeout) + WD_SET(WD_IRQ,WDTO_120MS); //interrupt only mode, 120ms timeout + WD_SET(WD_RST_IRQ,WDTO_2S); //interrupt+reset mode, 2S timeout + + +for enhanced watchdogs, if the watchdog is not being used WDRF should be +cleared on every power up or reset, along with disabling the watchdog- + WD_DISABLE(); //clear WDRF, then turn off watchdog + +*/ + +//reset registers to the same name (MCUCSR) +#if !defined(MCUCSR) +#define MCUCSR MCUSR +#endif + +//watchdog registers to the same name (WDTCSR) +#if !defined(WDTCSR) +#define WDTCSR WDTCR +#endif + +//if enhanced watchdog, define irq values, create disable macro +#if defined(WDIF) +#define WD_IRQ 0xC0 +#define WD_RST_IRQ 0xC8 +#define WD_DISABLE() do{ \ + MCUCSR &= ~(1<<WDRF); \ + WD_SET(WD_OFF); \ + }while(0) +#endif + +//all watchdogs +#define WD_RST 8 +#define WD_OFF 0 + +//prescale values +#define WDTO_15MS 0 +#define WDTO_30MS 1 +#define WDTO_60MS 2 +#define WDTO_120MS 3 +#define WDTO_250MS 4 +#define WDTO_500MS 5 +#define WDTO_1S 6 +#define WDTO_2S 7 + +//prescale values for avrs with WDP3 +#if defined(WDP3) +#define WDTO_4S 0x20 +#define WDTO_8S 0x21 +#endif + +//watchdog reset +#define WDR() __asm__ __volatile__("wdr") + +//avr reset using watchdog +#define WD_AVR_RESET() do{ \ + __asm__ __volatile__("cli"); \ + WD_SET_UNSAFE(WD_RST); \ + while(1); \ + }while(0) + +/*set the watchdog- +1. save SREG +2. turn off irq's +3. reset watchdog timer +4. enable watchdog change +5. write watchdog value +6. restore SREG (restoring irq status) +*/ +#define WD_SET(val,...) \ + __asm__ __volatile__( \ + "in __tmp_reg__,__SREG__" "\n\t" \ + "cli" "\n\t" \ + "wdr" "\n\t" \ + "sts %[wdreg],%[wden]" "\n\t" \ + "sts %[wdreg],%[wdval]" "\n\t" \ + "out __SREG__,__tmp_reg__" "\n\t" \ + : \ + : [wdreg] "M" (&WDTCSR), \ + [wden] "r" ((uint8_t)(0x18)), \ + [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \ + : "r0" \ +) + +/*set the watchdog when I bit in SREG known to be clear- +1. reset watchdog timer +2. enable watchdog change +5. write watchdog value +*/ +#define WD_SET_UNSAFE(val,...) \ + __asm__ __volatile__( \ + "wdr" "\n\t" \ + "sts %[wdreg],%[wden]" "\n\t" \ + "sts %[wdreg],%[wdval]" "\n\t" \ + : \ + : [wdreg] "M" (&WDTCSR), \ + [wden] "r" ((uint8_t)(0x18)), \ + [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \ +) + + +//for compatibility with avr/wdt.h +#define wdt_enable(val) WD_SET(WD_RST,val) +#define wdt_disable() WD_SET(WD_OFF) + + +#endif /* _AVR_WD_H_ */ diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 0eeace44ec..5b1e3d19d0 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -26,6 +26,10 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) $(TMK_DIR)/protocol/serial_uart.c endif +ifeq ($(strip $(VIRTSER_ENABLE)), yes) + LUFA_SRC += $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDCClassDevice.c +endif + SRC += $(LUFA_SRC) # Search Path diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/asf.xml b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/asf.xml index 72f3ff04c7..02e7063c66 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/asf.xml @@ -1,161 +1,161 @@ -<asf xmlversion="1.0">
- <project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_">
- <require idref="lufa.bootloaders.cdc"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_">
- <require idref="lufa.bootloaders.cdc"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb647"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0xF000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_">
- <require idref="lufa.bootloaders.cdc"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega32u4"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x7000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_">
- <require idref="lufa.bootloaders.cdc"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega16u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x3000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_">
- <require idref="lufa.bootloaders.cdc"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega8u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader">
- <info type="description" value="summary">
- CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="Bootloaders"/>
- <keyword value="USB Device"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="include-path" value="."/>
- <build type="c-source" value="BootloaderCDC.c"/>
- <build type="header-file" value="BootloaderCDC.h"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="Descriptors.h"/>
- <build type="c-source" value="BootloaderAPI.c"/>
- <build type="header-file" value="BootloaderAPI.h"/>
- <build type="asm-source" value="BootloaderAPITable.S"/>
-
- <build type="module-config" subtype="path" value="Config"/>
- <build type="header-file" value="Config/LUFAConfig.h"/>
- <build type="header-file" value="Config/AppConfig.h"/>
-
- <build type="distribute" subtype="user-file" value="doxyfile"/>
- <build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/>
- <build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.leds"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader"> + <info type="description" value="summary"> + CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderCDC.c"/> + <build type="header-file" value="BootloaderCDC.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/> + <build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/asf.xml b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/asf.xml index 6f3312b764..f56aba69f5 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/asf.xml @@ -1,156 +1,156 @@ -<asf xmlversion="1.0">
- <project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_">
- <require idref="lufa.bootloaders.dfu"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_">
- <require idref="lufa.bootloaders.dfu"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb647"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0xF000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_">
- <require idref="lufa.bootloaders.dfu"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega32u4"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x7000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_">
- <require idref="lufa.bootloaders.dfu"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega16u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x3000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_">
- <require idref="lufa.bootloaders.dfu"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega8u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader">
- <info type="description" value="summary">
- DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="Bootloaders"/>
- <keyword value="USB Device"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="include-path" value="."/>
- <build type="c-source" value="BootloaderDFU.c"/>
- <build type="header-file" value="BootloaderDFU.h"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="Descriptors.h"/>
- <build type="c-source" value="BootloaderAPI.c"/>
- <build type="header-file" value="BootloaderAPI.h"/>
- <build type="asm-source" value="BootloaderAPITable.S"/>
-
- <build type="module-config" subtype="path" value="Config"/>
- <build type="header-file" value="Config/LUFAConfig.h"/>
- <build type="header-file" value="Config/AppConfig.h"/>
-
- <build type="distribute" subtype="user-file" value="doxyfile"/>
- <build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.leds"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader"> + <info type="description" value="summary"> + DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderDFU.c"/> + <build type="header-file" value="BootloaderDFU.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/HID/asf.xml b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/HID/asf.xml index 9394b13530..c67b9419ed 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/HID/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/HID/asf.xml @@ -1,123 +1,123 @@ -<asf xmlversion="1.0">
- <project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_">
- <require idref="lufa.bootloaders.hid"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
- </project>
-
- <project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_">
- <require idref="lufa.bootloaders.hid"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb647"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0xF000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
- </project>
-
- <project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_">
- <require idref="lufa.bootloaders.hid"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega32u4"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x7000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
- </project>
-
- <project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_">
- <require idref="lufa.bootloaders.hid"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega16u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x3800"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/>
- </project>
-
- <project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_">
- <require idref="lufa.bootloaders.hid"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega8u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1800"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/>
- </project>
-
- <module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader">
- <info type="description" value="summary">
- HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="Bootloaders"/>
- <keyword value="USB Device"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="include-path" value="."/>
- <build type="c-source" value="BootloaderHID.c"/>
- <build type="header-file" value="BootloaderHID.h"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="Descriptors.h"/>
-
- <build type="module-config" subtype="path" value="Config"/>
- <build type="header-file" value="Config/LUFAConfig.h"/>
-
- <build type="distribute" subtype="user-file" value="doxyfile"/>
- <build type="distribute" subtype="user-file" value="BootloaderHID.txt"/>
- <build type="distribute" subtype="directory" value="HostLoaderApp"/>
- <build type="distribute" subtype="directory" value="HostLoaderApp_Python"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.leds"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + </project> + + <project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + </project> + + <project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + </project> + + <project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3800"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/> + </project> + + <project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1800"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/> + </project> + + <module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader"> + <info type="description" value="summary"> + HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderHID.c"/> + <build type="header-file" value="BootloaderHID.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderHID.txt"/> + <build type="distribute" subtype="directory" value="HostLoaderApp"/> + <build type="distribute" subtype="directory" value="HostLoaderApp_Python"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/BootloaderAPITable.S b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/BootloaderAPITable.S index 6844d4b01c..91fc949666 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/BootloaderAPITable.S +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/BootloaderAPITable.S @@ -1,102 +1,102 @@ -/*
- LUFA Library
- Copyright (C) Dean Camera, 2014.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-#if AUX_BOOT_SECTION_SIZE > 0
-#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation).
-
-; Trampoline to jump over the AUX bootloader section to the start of the bootloader,
-; on devices where an AUX bootloader section is used.
-.section .boot_aux_trampoline, "ax"
-.global Boot_AUX_Trampoline
-Boot_AUX_Trampoline:
- jmp BOOT_START_ADDR
-#endif
-
-; Trampolines to actual API implementations if the target address is outside the
-; range of a rjmp instruction (can happen with large bootloader sections)
-.section .apitable_trampolines, "ax"
-.global BootloaderAPI_Trampolines
-BootloaderAPI_Trampolines:
-
- BootloaderAPI_ErasePage_Trampoline:
- jmp BootloaderAPI_ErasePage
- BootloaderAPI_WritePage_Trampoline:
- jmp BootloaderAPI_WritePage
- BootloaderAPI_FillWord_Trampoline:
- jmp BootloaderAPI_FillWord
- BootloaderAPI_ReadSignature_Trampoline:
- jmp BootloaderAPI_ReadSignature
- BootloaderAPI_ReadFuse_Trampoline:
- jmp BootloaderAPI_ReadFuse
- BootloaderAPI_ReadLock_Trampoline:
- jmp BootloaderAPI_ReadLock
- BootloaderAPI_WriteLock_Trampoline:
- jmp BootloaderAPI_WriteLock
- BootloaderAPI_UNUSED1:
- ret
- BootloaderAPI_UNUSED2:
- ret
- BootloaderAPI_UNUSED3:
- ret
- BootloaderAPI_UNUSED4:
- ret
- BootloaderAPI_UNUSED5:
- ret
-
-
-
-; API function jump table
-.section .apitable_jumptable, "ax"
-.global BootloaderAPI_JumpTable
-BootloaderAPI_JumpTable:
-
- rjmp BootloaderAPI_ErasePage_Trampoline
- rjmp BootloaderAPI_WritePage_Trampoline
- rjmp BootloaderAPI_FillWord_Trampoline
- rjmp BootloaderAPI_ReadSignature_Trampoline
- rjmp BootloaderAPI_ReadFuse_Trampoline
- rjmp BootloaderAPI_ReadLock_Trampoline
- rjmp BootloaderAPI_WriteLock_Trampoline
- rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
- rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
- rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
- rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
- rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
-
-
-
-; Bootloader table signatures and information
-.section .apitable_signatures, "ax"
-.global BootloaderAPI_Signatures
-BootloaderAPI_Signatures:
-
- .long BOOT_START_ADDR ; Start address of the bootloader
- .word 0xDF30 ; Signature for the MS class bootloader, V1
- .word 0xDCFB ; Signature for a LUFA class bootloader
+/* + LUFA Library + Copyright (C) Dean Camera, 2014. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#if AUX_BOOT_SECTION_SIZE > 0 +#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation). + +; Trampoline to jump over the AUX bootloader section to the start of the bootloader, +; on devices where an AUX bootloader section is used. +.section .boot_aux_trampoline, "ax" +.global Boot_AUX_Trampoline +Boot_AUX_Trampoline: + jmp BOOT_START_ADDR +#endif + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) +.section .apitable_trampolines, "ax" +.global BootloaderAPI_Trampolines +BootloaderAPI_Trampolines: + + BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage + BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage + BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord + BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature + BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse + BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock + BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock + BootloaderAPI_UNUSED1: + ret + BootloaderAPI_UNUSED2: + ret + BootloaderAPI_UNUSED3: + ret + BootloaderAPI_UNUSED4: + ret + BootloaderAPI_UNUSED5: + ret + + + +; API function jump table +.section .apitable_jumptable, "ax" +.global BootloaderAPI_JumpTable +BootloaderAPI_JumpTable: + + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 + + + +; Bootloader table signatures and information +.section .apitable_signatures, "ax" +.global BootloaderAPI_Signatures +BootloaderAPI_Signatures: + + .long BOOT_START_ADDR ; Start address of the bootloader + .word 0xDF30 ; Signature for the MS class bootloader, V1 + .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/asf.xml b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/asf.xml index f1d550d1eb..700ffa26ff 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/asf.xml @@ -1,156 +1,156 @@ -<asf xmlversion="1.0">
- <project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_">
- <require idref="lufa.bootloaders.mass_storage"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1E000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/>
-
- <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_">
- <require idref="lufa.bootloaders.mass_storage"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb647"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0xE000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/>
-
- <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_">
- <require idref="lufa.bootloaders.mass_storage"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega32u4"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x7000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
-
- <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
- <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/>
- <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/>
- <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_">
- <require idref="lufa.bootloaders.mass_storage"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega16u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x3000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
-
- <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
- <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/>
- <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/>
- <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader">
- <info type="description" value="summary">
- Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="Bootloaders"/>
- <keyword value="USB Device"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="include-path" value="."/>
- <build type="c-source" value="BootloaderMassStorage.c"/>
- <build type="header-file" value="BootloaderMassStorage.h"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="Descriptors.h"/>
- <build type="c-source" value="BootloaderAPI.c"/>
- <build type="header-file" value="BootloaderAPI.h"/>
- <build type="asm-source" value="BootloaderAPITable.S"/>
-
- <build type="module-config" subtype="path" value="Config"/>
- <build type="header-file" value="Config/LUFAConfig.h"/>
- <build type="header-file" value="Config/AppConfig.h"/>
-
- <build type="include-path" value="Lib"/>
- <build type="header-file" value="Lib/VirtualFAT.h"/>
- <build type="c-source" value="Lib/VirtualFAT.c"/>
- <build type="header-file" value="Lib/SCSI.h"/>
- <build type="c-source" value="Lib/SCSI.c"/>
-
- <build type="distribute" subtype="user-file" value="doxyfile"/>
- <build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.leds"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1E000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xE000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/> + <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/> + <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader"> + <info type="description" value="summary"> + Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderMassStorage.c"/> + <build type="header-file" value="BootloaderMassStorage.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="include-path" value="Lib"/> + <build type="header-file" value="Lib/VirtualFAT.h"/> + <build type="c-source" value="Lib/VirtualFAT.c"/> + <build type="header-file" value="Lib/SCSI.h"/> + <build type="c-source" value="Lib/SCSI.c"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/makefile b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/makefile index 91bb4038e8..a0edb2c4f5 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/makefile +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/MassStorage/makefile @@ -1,68 +1,68 @@ -#
-# LUFA Library
-# Copyright (C) Dean Camera, 2014.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-# Run "make help" for target help.
-
-MCU = at90usb1287
-ARCH = AVR8
-BOARD = USBKEY
-F_CPU = 8000000
-F_USB = $(F_CPU)
-OPTIMIZATION = s
-TARGET = BootloaderMassStorage
-SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
-LUFA_PATH = ../../LUFA
-CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
-LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
-
-# Flash size and bootloader section sizes of the target, in KB. These must
-# match the target's total FLASH size and the bootloader size set in the
-# device's fuses.
-FLASH_SIZE_KB = 128
-BOOT_SECTION_SIZE_KB = 8
-
-# Bootloader address calculation formulas
-# Do not modify these macros, but rather modify the dependent values above.
-CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
-BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
-BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
-
-# Bootloader linker section flags for relocating the API table sections to
-# known FLASH addresses - these should not normally be user-edited.
-BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
-BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
-BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
-BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
-
-# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the
-# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum
-# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices.
-ifeq ($(BOOT_SECTION_SIZE_KB),8)
- CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0
-else
- AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB))
-
- CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)'
- LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16))
- LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024)
-endif
-
-# Default target
-all:
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa_core.mk
-include $(LUFA_PATH)/Build/lufa_sources.mk
-include $(LUFA_PATH)/Build/lufa_build.mk
-include $(LUFA_PATH)/Build/lufa_cppcheck.mk
-include $(LUFA_PATH)/Build/lufa_doxygen.mk
-include $(LUFA_PATH)/Build/lufa_avrdude.mk
-include $(LUFA_PATH)/Build/lufa_atprogram.mk
+# +# LUFA Library +# Copyright (C) Dean Camera, 2014. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = at90usb1287 +ARCH = AVR8 +BOARD = USBKEY +F_CPU = 8000000 +F_USB = $(F_CPU) +OPTIMIZATION = s +TARGET = BootloaderMassStorage +SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) +LUFA_PATH = ../../LUFA +CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) +LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) + +# Flash size and bootloader section sizes of the target, in KB. These must +# match the target's total FLASH size and the bootloader size set in the +# device's fuses. +FLASH_SIZE_KB = 128 +BOOT_SECTION_SIZE_KB = 8 + +# Bootloader address calculation formulas +# Do not modify these macros, but rather modify the dependent values above. +CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) +BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) +BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) + +# Bootloader linker section flags for relocating the API table sections to +# known FLASH addresses - these should not normally be user-edited. +BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) +BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) + +# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the +# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum +# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices. +ifeq ($(BOOT_SECTION_SIZE_KB),8) + CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0 +else + AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB)) + + CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)' + LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16)) + LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024) +endif + +# Default target +all: + +# Include LUFA build script makefiles +include $(LUFA_PATH)/Build/lufa_core.mk +include $(LUFA_PATH)/Build/lufa_sources.mk +include $(LUFA_PATH)/Build/lufa_build.mk +include $(LUFA_PATH)/Build/lufa_cppcheck.mk +include $(LUFA_PATH)/Build/lufa_doxygen.mk +include $(LUFA_PATH)/Build/lufa_avrdude.mk +include $(LUFA_PATH)/Build/lufa_atprogram.mk diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/BootloaderAPITable.S b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/BootloaderAPITable.S index ec499b74e5..88c51da825 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/BootloaderAPITable.S +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/BootloaderAPITable.S @@ -1,91 +1,91 @@ -/*
- LUFA Library
- Copyright (C) Dean Camera, 2014.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-; Trampolines to actual API implementations if the target address is outside the
-; range of a rjmp instruction (can happen with large bootloader sections)
-.section .apitable_trampolines, "ax"
-.global BootloaderAPI_Trampolines
-BootloaderAPI_Trampolines:
-
- BootloaderAPI_ErasePage_Trampoline:
- jmp BootloaderAPI_ErasePage
- BootloaderAPI_WritePage_Trampoline:
- jmp BootloaderAPI_WritePage
- BootloaderAPI_FillWord_Trampoline:
- jmp BootloaderAPI_FillWord
- BootloaderAPI_ReadSignature_Trampoline:
- jmp BootloaderAPI_ReadSignature
- BootloaderAPI_ReadFuse_Trampoline:
- jmp BootloaderAPI_ReadFuse
- BootloaderAPI_ReadLock_Trampoline:
- jmp BootloaderAPI_ReadLock
- BootloaderAPI_WriteLock_Trampoline:
- jmp BootloaderAPI_WriteLock
- BootloaderAPI_UNUSED1:
- ret
- BootloaderAPI_UNUSED2:
- ret
- BootloaderAPI_UNUSED3:
- ret
- BootloaderAPI_UNUSED4:
- ret
- BootloaderAPI_UNUSED5:
- ret
-
-
-
-; API function jump table
-.section .apitable_jumptable, "ax"
-.global BootloaderAPI_JumpTable
-BootloaderAPI_JumpTable:
-
- rjmp BootloaderAPI_ErasePage_Trampoline
- rjmp BootloaderAPI_WritePage_Trampoline
- rjmp BootloaderAPI_FillWord_Trampoline
- rjmp BootloaderAPI_ReadSignature_Trampoline
- rjmp BootloaderAPI_ReadFuse_Trampoline
- rjmp BootloaderAPI_ReadLock_Trampoline
- rjmp BootloaderAPI_WriteLock_Trampoline
- rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
- rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
- rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
- rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
- rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
-
-
-
-; Bootloader table signatures and information
-.section .apitable_signatures, "ax"
-.global BootloaderAPI_Signatures
-BootloaderAPI_Signatures:
-
- .long BOOT_START_ADDR ; Start address of the bootloader
- .word 0xDF20 ; Signature for the Printer class bootloader
- .word 0xDCFB ; Signature for a LUFA class bootloader
+/* + LUFA Library + Copyright (C) Dean Camera, 2014. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) +.section .apitable_trampolines, "ax" +.global BootloaderAPI_Trampolines +BootloaderAPI_Trampolines: + + BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage + BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage + BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord + BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature + BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse + BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock + BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock + BootloaderAPI_UNUSED1: + ret + BootloaderAPI_UNUSED2: + ret + BootloaderAPI_UNUSED3: + ret + BootloaderAPI_UNUSED4: + ret + BootloaderAPI_UNUSED5: + ret + + + +; API function jump table +.section .apitable_jumptable, "ax" +.global BootloaderAPI_JumpTable +BootloaderAPI_JumpTable: + + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 + + + +; Bootloader table signatures and information +.section .apitable_signatures, "ax" +.global BootloaderAPI_Signatures +BootloaderAPI_Signatures: + + .long BOOT_START_ADDR ; Start address of the bootloader + .word 0xDF20 ; Signature for the Printer class bootloader + .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/asf.xml b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/asf.xml index 86a56911ed..b5c0c6b3a5 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/asf.xml @@ -1,159 +1,159 @@ -<asf xmlversion="1.0">
- <project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_">
- <require idref="lufa.bootloaders.printer"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_">
- <require idref="lufa.bootloaders.printer"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="at90usb647"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0xF000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_">
- <require idref="lufa.bootloaders.printer"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega32u4"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x7000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_">
- <require idref="lufa.bootloaders.printer"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega16u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x3000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_">
- <require idref="lufa.bootloaders.printer"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8"/>
-
- <device-support value="atmega8u2"/>
- <config name="lufa.drivers.board.name" value="none"/>
-
- <config name="config.compiler.optimization.level" value="size"/>
-
- <build type="define" name="F_CPU" value="16000000UL"/>
- <build type="define" name="F_USB" value="16000000UL"/>
-
- <build type="define" name="BOOT_START_ADDR" value="0x1000"/>
- <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
-
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
- <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
- <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
- </project>
-
- <module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader">
- <info type="description" value="summary">
- Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="Bootloaders"/>
- <keyword value="USB Device"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="include-path" value="."/>
- <build type="c-source" value="BootloaderPrinter.c"/>
- <build type="header-file" value="BootloaderPrinter.h"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="Descriptors.h"/>
- <build type="c-source" value="BootloaderAPI.c"/>
- <build type="header-file" value="BootloaderAPI.h"/>
- <build type="asm-source" value="BootloaderAPITable.S"/>
-
- <build type="module-config" subtype="path" value="Config"/>
- <build type="header-file" value="Config/LUFAConfig.h"/>
-
- <build type="distribute" subtype="user-file" value="doxyfile"/>
- <build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.leds"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader"> + <info type="description" value="summary"> + Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderPrinter.c"/> + <build type="header-file" value="BootloaderPrinter.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/makefile b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/makefile index 0716c3bbe8..0db035de3b 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/makefile +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/Printer/makefile @@ -1,55 +1,55 @@ -#
-# LUFA Library
-# Copyright (C) Dean Camera, 2014.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-# Run "make help" for target help.
-
-MCU = at90usb1287
-ARCH = AVR8
-BOARD = USBKEY
-F_CPU = 8000000
-F_USB = $(F_CPU)
-OPTIMIZATION = s
-TARGET = BootloaderPrinter
-SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
-LUFA_PATH = ../../LUFA
-CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
-LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
-
-# Flash size and bootloader section sizes of the target, in KB. These must
-# match the target's total FLASH size and the bootloader size set in the
-# device's fuses.
-FLASH_SIZE_KB = 128
-BOOT_SECTION_SIZE_KB = 8
-
-# Bootloader address calculation formulas
-# Do not modify these macros, but rather modify the dependent values above.
-CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
-BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
-BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
-
-# Bootloader linker section flags for relocating the API table sections to
-# known FLASH addresses - these should not normally be user-edited.
-BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
-BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
-BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
-BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
-
-# Default target
-all:
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa_core.mk
-include $(LUFA_PATH)/Build/lufa_sources.mk
-include $(LUFA_PATH)/Build/lufa_build.mk
-include $(LUFA_PATH)/Build/lufa_cppcheck.mk
-include $(LUFA_PATH)/Build/lufa_doxygen.mk
-include $(LUFA_PATH)/Build/lufa_avrdude.mk
-include $(LUFA_PATH)/Build/lufa_atprogram.mk
+# +# LUFA Library +# Copyright (C) Dean Camera, 2014. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = at90usb1287 +ARCH = AVR8 +BOARD = USBKEY +F_CPU = 8000000 +F_USB = $(F_CPU) +OPTIMIZATION = s +TARGET = BootloaderPrinter +SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) +LUFA_PATH = ../../LUFA +CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) +LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) + +# Flash size and bootloader section sizes of the target, in KB. These must +# match the target's total FLASH size and the bootloader size set in the +# device's fuses. +FLASH_SIZE_KB = 128 +BOOT_SECTION_SIZE_KB = 8 + +# Bootloader address calculation formulas +# Do not modify these macros, but rather modify the dependent values above. +CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) +BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) +BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) + +# Bootloader linker section flags for relocating the API table sections to +# known FLASH addresses - these should not normally be user-edited. +BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) +BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) + +# Default target +all: + +# Include LUFA build script makefiles +include $(LUFA_PATH)/Build/lufa_core.mk +include $(LUFA_PATH)/Build/lufa_sources.mk +include $(LUFA_PATH)/Build/lufa_build.mk +include $(LUFA_PATH)/Build/lufa_cppcheck.mk +include $(LUFA_PATH)/Build/lufa_doxygen.mk +include $(LUFA_PATH)/Build/lufa_avrdude.mk +include $(LUFA_PATH)/Build/lufa_atprogram.mk diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile b/tmk_core/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile index 9fd188c936..e839ba6b1d 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/Build/HID_EEPROM_Loader/makefile @@ -1,42 +1,42 @@ -#
-# LUFA Library
-# Copyright (C) Dean Camera, 2014.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-# Run "make help" for target help.
-
-MCU = at90usb1287
-ARCH = AVR8
-F_CPU = 1000000
-F_USB = $(F_CPU)
-OPTIMIZATION = s
-TARGET = HID_EEPROM_Loader
-SRC = $(TARGET).c
-LUFA_PATH = ../../../LUFA
-CC_FLAGS =
-LD_FLAGS =
-OBJECT_FILES = InputEEData.o
-
-# Default target
-all:
-
-# Determine the AVR sub-architecture of the build main application object file
-FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1)
-
-# Create a linkable object file with the input binary EEPROM data stored in the FLASH section
-InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST)
- @echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\"
- avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa_core.mk
-include $(LUFA_PATH)/Build/lufa_build.mk
-include $(LUFA_PATH)/Build/lufa_cppcheck.mk
-include $(LUFA_PATH)/Build/lufa_doxygen.mk
-include $(LUFA_PATH)/Build/lufa_hid.mk
+# +# LUFA Library +# Copyright (C) Dean Camera, 2014. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = at90usb1287 +ARCH = AVR8 +F_CPU = 1000000 +F_USB = $(F_CPU) +OPTIMIZATION = s +TARGET = HID_EEPROM_Loader +SRC = $(TARGET).c +LUFA_PATH = ../../../LUFA +CC_FLAGS = +LD_FLAGS = +OBJECT_FILES = InputEEData.o + +# Default target +all: + +# Determine the AVR sub-architecture of the build main application object file +FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1) + +# Create a linkable object file with the input binary EEPROM data stored in the FLASH section +InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST) + @echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\" + avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@ + +# Include LUFA build script makefiles +include $(LUFA_PATH)/Build/lufa_core.mk +include $(LUFA_PATH)/Build/lufa_build.mk +include $(LUFA_PATH)/Build/lufa_cppcheck.mk +include $(LUFA_PATH)/Build/lufa_doxygen.mk +include $(LUFA_PATH)/Build/lufa_hid.mk diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/DeviceTemplate/asf.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/DeviceTemplate/asf.xml index fd65db283f..e952714e16 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/DeviceTemplate/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/DeviceTemplate/asf.xml @@ -1,55 +1,55 @@ -<asf xmlversion="1.0">
- <project caption="USB Device Template" id="lufa.templates.device.project.avr8">
- <require idref="lufa.templates.device"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8_template"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="usbkey"/>
-
- <build type="define" name="F_CPU" value="8000000UL"/>
- <build type="define" name="F_USB" value="8000000UL"/>
- </project>
-
- <project caption="USB Device Template" id="lufa.templates.device.project.xmega">
- <require idref="lufa.templates.device"/>
- <require idref="lufa.boards.dummy.xmega"/>
- <generator value="as5_8_template"/>
-
- <device-support value="atxmega256a3bu"/>
- <config name="lufa.drivers.board.name" value="a3bu_xplained"/>
-
- <build type="define" name="F_CPU" value="32000000UL"/>
- <build type="define" name="F_USB" value="48000000UL"/>
- </project>
-
- <module type="application" id="lufa.templates.device" caption="USB Device Template">
- <info type="description" value="summary">
- Template for a LUFA USB device mode application.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="USB Device"/>
- <keyword value="Template Projects"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="c-source" value="DeviceApplication.c"/>
- <build type="c-source" value="Descriptors.c"/>
- <build type="header-file" value="DeviceApplication.h"/>
- <build type="header-file" value="Descriptors.h"/>
-
- <build type="module-config" subtype="path" value=".."/>
- <build type="header-file" value="../LUFAConfig.h"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="USB Device Template" id="lufa.templates.device.project.avr8"> + <require idref="lufa.templates.device"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8_template"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <project caption="USB Device Template" id="lufa.templates.device.project.xmega"> + <require idref="lufa.templates.device"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8_template"/> + + <device-support value="atxmega256a3bu"/> + <config name="lufa.drivers.board.name" value="a3bu_xplained"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.templates.device" caption="USB Device Template"> + <info type="description" value="summary"> + Template for a LUFA USB device mode application. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="USB Device"/> + <keyword value="Template Projects"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="c-source" value="DeviceApplication.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="DeviceApplication.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value=".."/> + <build type="header-file" value="../LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/HostTemplate/asf.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/HostTemplate/asf.xml index c1996ec711..c3860c056d 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/HostTemplate/asf.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/CodeTemplates/HostTemplate/asf.xml @@ -1,41 +1,41 @@ -<asf xmlversion="1.0">
- <project caption="USB Host Template" id="lufa.templates.host.project">
- <require idref="lufa.templates.host"/>
- <require idref="lufa.boards.dummy.avr8"/>
- <generator value="as5_8_template"/>
-
- <device-support value="at90usb1287"/>
- <config name="lufa.drivers.board.name" value="usbkey"/>
-
- <build type="define" name="F_CPU" value="8000000UL"/>
- <build type="define" name="F_USB" value="8000000UL"/>
- </project>
-
- <module type="application" id="lufa.templates.host" caption="USB Host Template">
- <info type="description" value="summary">
- Template for a LUFA USB host mode application.
- </info>
-
- <info type="gui-flag" value="move-to-root"/>
-
- <info type="keyword" value="Technology">
- <keyword value="USB Host"/>
- <keyword value="Template Projects"/>
- </info>
-
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="c-source" value="HostApplication.c"/>
- <build type="header-file" value="HostApplication.h"/>
-
- <build type="module-config" subtype="path" value=".."/>
- <build type="header-file" value="../LUFAConfig.h"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.platform"/>
- <require idref="lufa.drivers.usb"/>
- <require idref="lufa.drivers.board"/>
- </module>
-</asf>
+<asf xmlversion="1.0"> + <project caption="USB Host Template" id="lufa.templates.host.project"> + <require idref="lufa.templates.host"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8_template"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.templates.host" caption="USB Host Template"> + <info type="description" value="summary"> + Template for a LUFA USB host mode application. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="USB Host"/> + <keyword value="Template Projects"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="c-source" value="HostApplication.c"/> + <build type="header-file" value="HostApplication.h"/> + + <build type="module-config" subtype="path" value=".."/> + <build type="header-file" value="../LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + </module> +</asf> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/DoxygenPages/BuildSystem.txt b/tmk_core/protocol/lufa/LUFA-git/LUFA/DoxygenPages/BuildSystem.txt index 7ddfa1be3f..0ae1dd678f 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/DoxygenPages/BuildSystem.txt +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/DoxygenPages/BuildSystem.txt @@ -1,975 +1,975 @@ -/** \file
- *
- * This file contains special DoxyGen information for the generation of the main page and other special
- * documentation pages. It is not a project source file.
- */
-
-/** \page Page_BuildSystem The LUFA Build System
- *
- * \section Sec_BuildSystem_Overview Overview of the LUFA Build System
- * The LUFA build system is an attempt at making a set of re-usable, modular build make files which
- * can be referenced in a LUFA powered project, to minimize the amount of code required in an
- * application makefile. The system is written in GNU Make, and each module is independent of
- * one-another.
- *
- * For details on the prerequisites needed for Linux and Windows machines to be able to use the LUFA
- * build system, see \ref Sec_CompilingApps_Prerequisites.
- *
- * To use a LUFA build system module, simply add an include to your project makefile. All user projects
- * should at a minimum include \ref Page_BuildModule_CORE for base functionality:
- * \code
- * include $(LUFA_PATH)/Build/lufa_core.mk
- * \endcode
- *
- * Once included in your project makefile, the associated build module targets will be added to your
- * project's build makefile targets automatically. To call a build target, run <tt>make {TARGET_NAME}</tt>
- * from the command line, substituting in the appropriate target name.
- *
- * \see \ref Sec_ConfiguringApps_AppMakefileParams for a copy of the sample LUFA project makefile.
- *
- * Each build module may have one or more mandatory parameters (GNU Make variables) which <i>must</i>
- * be supplied in the project makefile for the module to work, and one or more optional parameters which
- * may be defined and which will assume a sensible default if not.
- *
- * \section SSec_BuildSystem_Modules Available Modules
- *
- * The following modules are included in this LUFA release:
- *
- * \li \subpage Page_BuildModule_ATPROGRAM - Device Programming
- * \li \subpage Page_BuildModule_AVRDUDE - Device Programming
- * \li \subpage Page_BuildModule_BUILD - Compiling/Assembling/Linking
- * \li \subpage Page_BuildModule_CORE - Core Build System Functions
- * \li \subpage Page_BuildModule_CPPCHECK - Static Code Analysis
- * \li \subpage Page_BuildModule_DFU - Device Programming
- * \li \subpage Page_BuildModule_DOXYGEN - Automated Source Code Documentation
- * \li \subpage Page_BuildModule_HID - Device Programming
- * \li \subpage Page_BuildModule_SOURCES - LUFA Module Source Code Variables
- *
- * If you have problems building using the LUFA build system, see \subpage Page_BuildTroubleshooting for resolution steps.
- */
-
- /** \page Page_BuildModule_BUILD The BUILD build module
- *
- * The BUILD LUFA build system module, providing targets for the compilation,
- * assembling and linking of an application from source code into binary files
- * suitable for programming into a target device, using the GCC compiler.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_build.mk
- * \endcode
- *
- * \section SSec_BuildModule_BUILD_Requirements Requirements
- * This module requires the the architecture appropriate binaries of the GCC compiler are available in your
- * system's <b>PATH</b> variable. The GCC compiler and associated toolchain is distributed in Atmel AVR Studio
- * 5.x and Atmel Studio 6.x installation directories, as well as in many third party distribution packages.
- *
- * \section SSec_BuildModule_BUILD_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>size</tt></td>
- * <td>Display size of the compiled application FLASH and SRAM segments.</td>
- * </tr>
- * <tr>
- * <td><tt>symbol-sizes</tt></td>
- * <td>Display a size-sorted list of symbols from the compiled application, in decimal bytes.</td>
- * </tr>
- * <tr>
- * <td><tt>lib</tt></td>
- * <td>Build and archive all source files into a library A binary file.</td>
- * </tr>
- * <tr>
- * <td><tt>all</tt></td>
- * <td>Build and link the application into ELF debug and HEX binary files.</td>
- * </tr>
- * <tr>
- * <td><tt>elf</tt></td>
- * <td>Build and link the application into an ELF debug file.</td>
- * </tr>
- * <tr>
- * <td><tt>bin</tt></td>
- * <td>Build and link the application and produce a BIN binary file.</td>
- * </tr>
- * <tr>
- * <td><tt>hex</tt></td>
- * <td>Build and link the application and produce HEX and EEP binary files.</td>
- * </tr>
- * <tr>
- * <td><tt>lss</tt></td>
- * <td>Build and link the application and produce a LSS source code/assembly code mixed listing file.</td>
- * </tr>
- * <tr>
- * <td><tt>clean</tt></td>
- * <td>Remove all intermediary files and binary output files.</td>
- * </tr>
- * <tr>
- * <td><tt>mostlyclean</tt></td>
- * <td>Remove all intermediary files but preserve any binary output files.</td>
- * </tr>
- * <tr>
- * <td><tt><i><filename></i>.s</tt></td>
- * <td>Create an assembly listing of a given input C/C++ source file.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_BUILD_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>TARGET</tt></td>
- * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>ARCH</tt></td>
- * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td>
- * </tr>
- * <tr>
- * <td><tt>MCU</tt></td>
- * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>SRC</tt></td>
- * <td>List of relative or absolute paths to the application C (.c), C++ (.cpp) and Assembly (.S) source files.</td>
- * </tr>
- * <tr>
- * <td><tt>F_USB</tt></td>
- * <td>Speed in Hz of the input clock frequency to the target's USB controller.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_PATH</tt></td>
- * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_BUILD_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><tt>BOARD</tt></td>
- * <td>LUFA board hardware drivers to use (see \ref Page_DeviceSupport).</td>
- * </tr>
- * <tr>
- * <td><tt>OPTIMIZATION</tt></td>
- * <td>Optimization level to use when compiling source files (see GCC manual).</td>
- * </tr>
- * <tr>
- * <td><tt>C_STANDARD</tt></td>
- * <td>Version of the C standard to apply when compiling C++ source files (see GCC manual).</td>
- * </tr>
- * <tr>
- * <td><tt>CPP_STANDARD</tt></td>
- * <td>Version of the C++ standard to apply when compiling C++ source files (see GCC manual).</td>
- * </tr>
- * <tr>
- * <td><tt>DEBUG_FORMAT</tt></td>
- * <td>Format of the debug information to embed in the generated object files (see GCC manual).</td>
- * </tr>
- * <tr>
- * <td><tt>DEBUG_LEVEL</tt></td>
- * <td>Level of the debugging information to embed in the generated object files (see GCC manual).</td>
- * </tr>
- * <tr>
- * <td><tt>F_CPU</tt></td>
- * <td>Speed of the processor CPU clock, in Hz.</td>
- * </tr>
- * <tr>
- * <td><tt>C_FLAGS</tt></td>
- * <td>Flags to pass to the C compiler only, after the automatically generated flags.</td>
- * </tr>
- * <tr>
- * <td><tt>CPP_FLAGS</tt></td>
- * <td>Flags to pass to the C++ compiler only, after the automatically generated flags.</td>
- * </tr>
- * <tr>
- * <td><tt>ASM_FLAGS</tt></td>
- * <td>Flags to pass to the assembler only, after the automatically generated flags.</td>
- * </tr>
- * <tr>
- * <td><tt>CC_FLAGS</tt></td>
- * <td>Common flags to pass to the C/C++ compiler and assembler, after the automatically generated flags.</td>
- * </tr>
- * <tr>
- * <td><tt>COMPILER_PATH</tt></td>
- * <td>Directory where the C/C++ toolchain is located, if not available in the system <tt>PATH</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>LD_FLAGS</tt></td>
- * <td>Flags to pass to the linker, after the automatically generated flags.</td>
- * </tr>
- * <tr>
- * <td><tt>LINKER_RELAXATIONS</tt></td>
- * <td>Enables or disables linker relaxations when linking the application binary. This can reduce the total size
- * of the application by replacing full \c CALL instructions with smaller \c RCALL instructions where possible.
- * \note On some unpatched versions of binutils, this can cause link failures in some circumstances. If you
- * receive a link error <tt>relocation truncated to fit: R_AVR_13_PCREL</tt>, disable this setting.</td>
- * </tr>
- * <tr>
- * <td><tt>OBJDIR</tt></td>
- * <td>Directory to place the generated object and dependency files. If set to "." the same folder as the source file will be used.
- * \note When this option is enabled, all source filenames <b>must</b> be unique.</td>
- * </tr>
- * <tr>
- * <td><tt>OBJECT_FILES</tt></td>
- * <td>List of additional object files that should be linked into the resulting binary.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_BUILD_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_BUILD_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
-/** \page Page_BuildModule_CORE The CORE build module
- *
- * The core LUFA build system module, providing common build system help and information targets.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_core.mk
- * \endcode
- *
- * \section SSec_BuildModule_CORE_Requirements Requirements
- * This module has no requirements outside a standard *nix shell like environment; the <tt>sh</tt>
- * shell, GNU <tt>make</tt> and *nix CoreUtils (<tt>echo</tt>, <tt>printf</tt>, etc.).
- *
- * \section SSec_BuildModule_CORE_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>help</tt></td>
- * <td>Display build system help and configuration information.</td>
- * </tr>
- * <tr>
- * <td><tt>list_targets</tt></td>
- * <td>List all available build targets from the build system.</td>
- * </tr>
- * <tr>
- * <td><tt>list_modules</tt></td>
- * <td>List all available build modules from the build system.</td>
- * </tr>
- * <tr>
- * <td><tt>list_mandatory</tt></td>
- * <td>List all mandatory parameters required by the included modules.</td>
- * </tr>
- * <tr>
- * <td><tt>list_optional</tt></td>
- * <td>List all optional parameters required by the included modules.</td>
- * </tr>
- * <tr>
- * <td><tt>list_provided</tt></td>
- * <td>List all variables provided by the included modules.</td>
- * </tr>
- * <tr>
- * <td><tt>list_macros</tt></td>
- * <td>List all macros provided by the included modules.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CORE_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CORE_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CORE_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CORE_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
-/** \page Page_BuildModule_ATPROGRAM The ATPROGRAM build module
- *
- * The ATPROGRAM programming utility LUFA build system module, providing targets to reprogram an
- * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_atprogram.mk
- * \endcode
- *
- * \section SSec_BuildModule_ATPROGRAM_Requirements Requirements
- * This module requires the <tt>atprogram.exe</tt> utility to be available in your system's <b>PATH</b>
- * variable. The <tt>atprogram.exe</tt> utility is distributed in Atmel AVR Studio 5.x and Atmel Studio 6.x
- * inside the application install folder's "\atbackend" subdirectory.
- *
- * \section SSec_BuildModule_ATPROGRAM_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>atprogram</tt></td>
- * <td>Program the device FLASH memory with the application's executable data.</td>
- * </tr>
- * <tr>
- * <td><tt>atprogram-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_ATPROGRAM_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>MCU</tt></td>
- * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>TARGET</tt></td>
- * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_ATPROGRAM_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><tt>ATPROGRAM_PROGRAMMER</tt></td>
- * <td>Name of the Atmel programmer or debugger tool to communicate with (e.g. <tt>jtagice3</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>ATPROGRAM_INTERFACE</tt></td>
- * <td>Name of the programming interface to use when programming the target (e.g. <tt>spi</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>ATPROGRAM_PORT</tt></td>
- * <td>Name of the communication port to use when when programming with a serially connected tool (e.g. <tt>COM2</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_ATPROGRAM_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_ATPROGRAM_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
-/** \page Page_BuildModule_AVRDUDE The AVRDUDE build module
- *
- * The AVRDUDE programming utility LUFA build system module, providing targets to reprogram an
- * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_avrdude.mk
- * \endcode
- *
- * \section SSec_BuildModule_AVRDUDE_Requirements Requirements
- * This module requires the <tt>avrdude</tt> utility to be available in your system's <b>PATH</b>
- * variable. The <tt>avrdude</tt> utility is distributed in the old WinAVR project releases for
- * Windows (<a>http://winavr.sourceforge.net</a>) or can be installed on *nix systems via the project's
- * source code (<a>https://savannah.nongnu.org/projects/avrdude</a>) or through the package manager.
- *
- * \section SSec_BuildModule_AVRDUDE_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>avrdude</tt></td>
- * <td>Program the device FLASH memory with the application's executable data.</td>
- * </tr>
- * <tr>
- * <td><tt>avrdude-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_AVRDUDE_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>MCU</tt></td>
- * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>TARGET</tt></td>
- * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_AVRDUDE_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><tt>AVRDUDE_PROGRAMMER</tt></td>
- * <td>Name of the programmer or debugger tool to communicate with (e.g. <tt>jtagicemkii</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>AVRDUDE_PORT</tt></td>
- * <td>Name of the communication port to use when when programming with the connected tool (e.g. <tt>COM2</tt>, <tt>/dev/ttyUSB0</tt> or <tt>usb</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>AVRDUDE_FLAGS</tt></td>
- * <td>Additional flags to pass to avrdude when programming, applied after the automatically generated flags.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_AVRDUDE_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_AVRDUDE_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
- /** \page Page_BuildModule_CPPCHECK The CPPCHECK build module
- *
- * The CPPCHECK programming utility LUFA build system module, providing targets to statically
- * analyze C and C++ source code for errors and performance/style issues.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_cppcheck.mk
- * \endcode
- *
- * \section SSec_BuildModule_CPPCHECK_Requirements Requirements
- * This module requires the <tt>cppcheck</tt> utility to be available in your system's <b>PATH</b>
- * variable. The <tt>cppcheck</tt> utility is distributed through the project's home page
- * (<a>http://cppcheck.sourceforge.net</a>) for Windows, and can be installed on *nix systems via
- * the project's source code or through the package manager.
- *
- * \section SSec_BuildModule_CPPCHECK_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>cppcheck</tt></td>
- * <td>Statically analyze the project source code for issues.</td>
- * </tr>
- * <tr>
- * <td><tt>cppcheck-config</tt></td>
- * <td>Check the <tt>cppcheck</tt> configuration - scan source code and warn about missing header files and other issues.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CPPCHECK_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>SRC</tt></td>
- * <td>List of source files to statically analyze.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CPPCHECK_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><tt>CPPCHECK_INCLUDES</tt></td>
- * <td>Path of extra directories to check when attemting to resolve C/C++ header file includes.</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_EXCLUDES</tt></td>
- * <td>Paths or path fragments to exclude when analyzing.</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_MSG_TEMPLATE</tt></td>
- * <td>Output message template to use when printing errors, warnings and information (see <tt>cppcheck</tt> documentation).</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_ENABLE</tt></td>
- * <td>Analysis rule categories to enable (see <tt>cppcheck</tt> documentation).</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_SUPPRESS</tt></td>
- * <td>Specific analysis rules to suppress (see <tt>cppcheck</tt> documentation).</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_FAIL_ON_WARNING</tt></td>
- * <td>Set to <b>Y</b> to fail the analysis job with an error exit code if warnings are found, <b>N</b> to continue without failing.</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_QUIET</tt></td>
- * <td>Set to <b>Y</b> to suppress all output except warnings and errors, <b>N</b> to show verbose output information.</td>
- * </tr>
- * <tr>
- * <td><tt>CPPCHECK_FLAGS</tt></td>
- * <td>Extra flags to pass to <tt>cppcheck</tt>, after the automatically generated flags.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CPPCHECK_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_CPPCHECK_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
- /** \page Page_BuildModule_DFU The DFU build module
- *
- * The DFU programming utility LUFA build system module, providing targets to reprogram an
- * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files.
- * This module requires a DFU class bootloader to be running in the target, compatible with
- * the DFU bootloader protocol as published by Atmel.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_dfu.mk
- * \endcode
- *
- * \section SSec_BuildModule_DFU_Requirements Requirements
- * This module requires either the <tt>batchisp</tt> utility from Atmel's FLIP utility, or the open
- * source <tt>dfu-programmer</tt> utility (<a>http://dfu-programmer.sourceforge.net/</a>) to be
- * available in your system's <b>PATH</b> variable. On *nix systems the <tt>dfu-programmer</tt> utility
- * can be installed via the project's source code or through the package manager.
- *
- * \section SSec_BuildModule_DFU_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>dfu</tt></td>
- * <td>Program the device FLASH memory with the application's executable data using <tt>dfu-programmer</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>dfu-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>dfu-programmer</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>flip</tt></td>
- * <td>Program the device FLASH memory with the application's executable data using <tt>batchisp</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>flip-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>batchisp</tt>.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DFU_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>MCU</tt></td>
- * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>TARGET</tt></td>
- * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DFU_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DFU_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DFU_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
- /** \page Page_BuildModule_DOXYGEN The DOXYGEN build module
- *
- * The DOXYGEN code documentation utility LUFA build system module, providing targets to generate
- * project HTML and other format documentation from a set of source files that include special
- * Doxygen comments.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_doxygen.mk
- * \endcode
- *
- * \section SSec_BuildModule_DOXYGEN_Requirements Requirements
- * This module requires the <tt>doxygen</tt> utility from the Doxygen website
- * (<a>http://www.doxygen.org/</a>) to be available in your system's <b>PATH</b> variable. On *nix
- * systems the <tt>doxygen</tt> utility can be installed via the project's source code or through
- * the package manager.
- *
- * \section SSec_BuildModule_DOXYGEN_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>doxygen</tt></td>
- * <td>Generate project documentation.</td>
- * </tr>
- * <tr>
- * <td><tt>doxygen_create</tt></td>
- * <td>Create a new Doxygen configuration file using the latest template.</td>
- * </tr>
- * <tr>
- * <td><tt>doxygen_upgrade</tt></td>
- * <td>Upgrade an existing Doxygen configuration file to the latest template</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DOXYGEN_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>LUFA_PATH</tt></td>
- * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DOXYGEN_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><tt>DOXYGEN_CONF</tt></td>
- * <td>Name and path of the base Doxygen configuration file for the project.</td>
- * </tr>
- * <tr>
- * <td><tt>DOXYGEN_FAIL_ON_WARNING</tt></td>
- * <td>Set to <b>Y</b> to fail the generation with an error exit code if warnings are found other than unsupported configuration parameters, <b>N</b> to continue without failing.</td>
- * </tr>
- * <tr>
- * <td><tt>DOXYGEN_OVERRIDE_PARAMS</tt></td>
- * <td>Extra Doxygen configuration parameters to apply, overriding the corresponding config entry in the project's configuration file (e.g. <tt>QUIET=YES</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DOXYGEN_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_DOXYGEN_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
- /** \page Page_BuildModule_HID The HID build module
- *
- * The HID programming utility LUFA build system module, providing targets to reprogram an
- * Atmel processor's FLASH memory with a project's compiled binary output file. This module
- * requires a HID class bootloader to be running in the target, using a protocol compatible
- * with the PJRC "HalfKay" protocol (<a>http://www.pjrc.com/teensy/halfkay_protocol.html</a>).
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_hid.mk
- * \endcode
- *
- * \section SSec_BuildModule_HID_Requirements Requirements
- * This module requires either the <tt>hid_bootloader_cli</tt> utility from the included LUFA HID
- * class bootloader API subdirectory, or the <tt>teensy_loader_cli</tt> utility from PJRC
- * (<a>http://www.pjrc.com/teensy/loader_cli.html</a>) to be available in your system's <b>PATH</b>
- * variable.
- *
- * \section SSec_BuildModule_HID_Targets Targets
- *
- * <table>
- * <tr>
- * <td><tt>hid</tt></td>
- * <td>Program the device FLASH memory with the application's executable data using <tt>hid_bootloader_cli</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>hid-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>hid_bootloader_cli</tt> and
- * a temporary AVR application programmed into the target's FLASH.
- * \note This will erase the currently loaded application in the target.</td>
- * </tr>
- * <tr>
- * <td><tt>teensy</tt></td>
- * <td>Program the device FLASH memory with the application's executable data using <tt>teensy_loader_cli</tt>.</td>
- * </tr>
- * <tr>
- * <td><tt>teensy-ee</tt></td>
- * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>teensy_loader_cli</tt> and
- * a temporary AVR application programmed into the target's FLASH.
- * \note This will erase the currently loaded application in the target.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_HID_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>MCU</tt></td>
- * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>TARGET</tt></td>
- * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_HID_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_HID_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_HID_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
- /** \page Page_BuildModule_SOURCES The SOURCES build module
- *
- * The SOURCES LUFA build system module, providing variables listing the various LUFA source files
- * required to be build by a project for a given LUFA module. This module gives a way to reference
- * LUFA source files symbolically, so that changes to the library structure do not break the library
- * makefile.
- *
- * To use this module in your application makefile, add the following code:
- * \code
- * include $(LUFA_PATH)/Build/lufa_sources.mk
- * \endcode
- *
- * \section SSec_BuildModule_SOURCES_Requirements Requirements
- * None.
- *
- * \section SSec_BuildModule_SOURCES_Targets Targets
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_SOURCES_MandatoryParams Mandatory Parameters
- *
- * <table>
- * <tr>
- * <td><tt>LUFA_PATH</tt></td>
- * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td>
- * </tr>
- * <tr>
- * <td><tt>ARCH</tt></td>
- * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_SOURCES_OptionalParams Optional Parameters
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_SOURCES_ProvidedVariables Module Provided Variables
- *
- * <table>
- * <tr>
- * <td><tt>LUFA_SRC_USB</tt></td>
- * <td>List of LUFA USB driver source files.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_SRC_USBCLASS</tt></td>
- * <td>List of LUFA USB Class driver source files.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_SRC_TEMPERATURE</tt></td>
- * <td>List of LUFA temperature sensor driver source files.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_SRC_SERIAL</tt></td>
- * <td>List of LUFA Serial U(S)ART driver source files.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_SRC_TWI</tt></td>
- * <td>List of LUFA TWI driver source files.</td>
- * </tr>
- * <tr>
- * <td><tt>LUFA_SRC_PLATFORM</tt></td>
- * <td>List of LUFA architecture specific platform management source files.</td>
- * </tr>
- * </table>
- *
- * \section SSec_BuildModule_SOURCES_ProvidedMacros Module Provided Macros
- *
- * <table>
- * <tr>
- * <td><i>None</i></td>
- * </tr>
- * </table>
- */
-
-/** \page Page_BuildTroubleshooting Troubleshooting Information
- *
- * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and surrounding binaries. This can sometimes lead to problems compiling applications if one of these
- * features is buggy in the version of the tools used in a build environment. Missing utilities and incorrectly set makefile configuration options can also result in different
- * errors being produced when compilation or other operations are attempted. The table below lists a set of commonly encountered errors and their resolutions.
- *
- * <table>
- * <tr>
- * <th>Problem</th>
- * <th>Resolution</th>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>relocation truncated to fit: R_AVR_13_PCREL against symbol <i>{X}</i></tt></b>" shown when compiling.</td>
- * <td>Try compiling with the setting <tt>LINKER_RELAXATIONS=N</tt> in your LUFA Build System 2.0 makefile, or remove the line <tt>-Wl,--relax</tt>
- * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>error: ld terminated with signal 11 [Segmentation fault]</tt></b>" shown when compiling.</td>
- * <td>Try compiling with the setting <tt>DEBUG_LEVEL=2</tt> in your LUFA Build System 2.0 makefile, or make sure you are using <tt>binutils</tt> version 2.22 or later.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>EMERGENCY ABORT: INFINITE RECURSION DETECTED</tt></b>" shown when compiling.</td>
- * <td>Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with
- * GNU make or other variants of Make causing an infinitely recursive build.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Unsupported architecture "<i>{X}</i>"</tt></b>" shown when compiling.</td>
- * <td>Ensure your makefile's <tt>ARCH</tt> setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Makefile <i>{X}</i> value not set</tt></b>" shown when compiling.</td>
- * <td>The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA
- * build system modules. Define the value in your project makefile and try again.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Makefile <i>{X}</i> option cannot be blank</tt></b>" shown when compiling.</td>
- * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration
- * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Makefile <i>{X}</i> option must be Y or N</tt></b>" shown when compiling.</td>
- * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No").
- * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Unknown input source file formats: <i>{X}</i></tt></b>" shown when compiling.</td>
- * <td>The nominated source files, specified in your project's makefile in the <tt>SRC</tt> configuration option, has an extension that the LUFA build system does not
- * recognise. The file extensions are case sensitive, and must be one of the supported formats (<tt>*.c</tt>, <tt>*.cpp</tt> or <tt>*.S</tt>).</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Cannot build with OBJDIR parameter set - one or more object file name is not unique</tt></b>" shown when compiling.</td>
- * <td>When a project is built with a non-empty <tt>OBJDIR</tt> object directory name set, all input source files must have unique names, excluding extension and path.
- * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Source file does not exist: <i>{X}</i></tt></b>" shown when compiling.</td>
- * <td>The nominated input source file, specified in the user project's <tt>SRC</tt> parameter, could not be found. Ensure the source file exists and the absolute or
- * relative path given in the user project makefile is correct and try again.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>Doxygen configuration file <i>{X}</i> does not exist</tt></b>" shown when upgrading a Doxygen configuration file.</td>
- * <td>The nominated Doxygen configuration file, specified in the user project's <tt>DOXYGEN_CONF</tt> parameter, could not be found. Ensure the configuration file exists
- * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration
- * file.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>avr-gcc: error: unrecognized option '<i>{X}</i>'</tt></b>" shown when compiling.</td>
- * <td>An unrecognised option was supplied to the compiler, usually in the <tt>C_FLAGS</tt>, <tt>CPP_FLAGS</tt>, <tt>ASM_FLAGS</tt> or <tt>CC_FLAGS</tt> configuration
- * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or
- * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>makefile:{X}: {Y}.mk: No such file or directory</tt></b>" shown when make is invoked.</td>
- * <td>The path to the nominated makefile module was incorrect. This usually indicates that the makefile <tt>LUFA_PATH</tt> option is not set to a valid relative or
- * absolute path to the LUFA library core.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>fatal error: LUFAConfig.h: No such file or directory</tt></b>" shown when compiling.</td>
- * <td>The <tt>USE_LUFA_CONFIG_HEADER</tt> compile time option was set in the user project makefile, but the user supplied <tt>LUFAConfig.h</tt> header could not be
- * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile <tt>CC_FLAGS</tt>
- * parameter.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>ld.exe: section .apitable_trampolines loaded at <i>{X}</i> overlaps section .text</tt></b>" shown when compiling a bootloader.</td>
- * <td>The bootloader is compiling too large for the given <tt>FLASH_SIZE_KB</tt> and <tt>BOOT_SECTION_SIZE_KB</tt> parameters set in the bootloader makefile. This
- * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the
- * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>unknown MCU '<i>{X}</i>' specified</tt></b>" shown when compiling.</td>
- * <td>The specified microcontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the
- * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.</td>
- * </tr>
- * <tr>
- * <td>Error "<b><tt>undefined reference to `<i>{X}</i>'</tt></b>" shown when compiling.</td>
- * <td>This is usually caused by a missing source file in the user application's <tt>SRC</tt> configuration parameter. If the indicated symbol is one from the LUFA
- * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_SOURCES).</td>
- * </tr>
- * </table>
- *
- * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp.
- */
+/** \file + * + * This file contains special DoxyGen information for the generation of the main page and other special + * documentation pages. It is not a project source file. + */ + +/** \page Page_BuildSystem The LUFA Build System + * + * \section Sec_BuildSystem_Overview Overview of the LUFA Build System + * The LUFA build system is an attempt at making a set of re-usable, modular build make files which + * can be referenced in a LUFA powered project, to minimize the amount of code required in an + * application makefile. The system is written in GNU Make, and each module is independent of + * one-another. + * + * For details on the prerequisites needed for Linux and Windows machines to be able to use the LUFA + * build system, see \ref Sec_CompilingApps_Prerequisites. + * + * To use a LUFA build system module, simply add an include to your project makefile. All user projects + * should at a minimum include \ref Page_BuildModule_CORE for base functionality: + * \code + * include $(LUFA_PATH)/Build/lufa_core.mk + * \endcode + * + * Once included in your project makefile, the associated build module targets will be added to your + * project's build makefile targets automatically. To call a build target, run <tt>make {TARGET_NAME}</tt> + * from the command line, substituting in the appropriate target name. + * + * \see \ref Sec_ConfiguringApps_AppMakefileParams for a copy of the sample LUFA project makefile. + * + * Each build module may have one or more mandatory parameters (GNU Make variables) which <i>must</i> + * be supplied in the project makefile for the module to work, and one or more optional parameters which + * may be defined and which will assume a sensible default if not. + * + * \section SSec_BuildSystem_Modules Available Modules + * + * The following modules are included in this LUFA release: + * + * \li \subpage Page_BuildModule_ATPROGRAM - Device Programming + * \li \subpage Page_BuildModule_AVRDUDE - Device Programming + * \li \subpage Page_BuildModule_BUILD - Compiling/Assembling/Linking + * \li \subpage Page_BuildModule_CORE - Core Build System Functions + * \li \subpage Page_BuildModule_CPPCHECK - Static Code Analysis + * \li \subpage Page_BuildModule_DFU - Device Programming + * \li \subpage Page_BuildModule_DOXYGEN - Automated Source Code Documentation + * \li \subpage Page_BuildModule_HID - Device Programming + * \li \subpage Page_BuildModule_SOURCES - LUFA Module Source Code Variables + * + * If you have problems building using the LUFA build system, see \subpage Page_BuildTroubleshooting for resolution steps. + */ + + /** \page Page_BuildModule_BUILD The BUILD build module + * + * The BUILD LUFA build system module, providing targets for the compilation, + * assembling and linking of an application from source code into binary files + * suitable for programming into a target device, using the GCC compiler. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_build.mk + * \endcode + * + * \section SSec_BuildModule_BUILD_Requirements Requirements + * This module requires the the architecture appropriate binaries of the GCC compiler are available in your + * system's <b>PATH</b> variable. The GCC compiler and associated toolchain is distributed in Atmel AVR Studio + * 5.x and Atmel Studio 6.x installation directories, as well as in many third party distribution packages. + * + * \section SSec_BuildModule_BUILD_Targets Targets + * + * <table> + * <tr> + * <td><tt>size</tt></td> + * <td>Display size of the compiled application FLASH and SRAM segments.</td> + * </tr> + * <tr> + * <td><tt>symbol-sizes</tt></td> + * <td>Display a size-sorted list of symbols from the compiled application, in decimal bytes.</td> + * </tr> + * <tr> + * <td><tt>lib</tt></td> + * <td>Build and archive all source files into a library A binary file.</td> + * </tr> + * <tr> + * <td><tt>all</tt></td> + * <td>Build and link the application into ELF debug and HEX binary files.</td> + * </tr> + * <tr> + * <td><tt>elf</tt></td> + * <td>Build and link the application into an ELF debug file.</td> + * </tr> + * <tr> + * <td><tt>bin</tt></td> + * <td>Build and link the application and produce a BIN binary file.</td> + * </tr> + * <tr> + * <td><tt>hex</tt></td> + * <td>Build and link the application and produce HEX and EEP binary files.</td> + * </tr> + * <tr> + * <td><tt>lss</tt></td> + * <td>Build and link the application and produce a LSS source code/assembly code mixed listing file.</td> + * </tr> + * <tr> + * <td><tt>clean</tt></td> + * <td>Remove all intermediary files and binary output files.</td> + * </tr> + * <tr> + * <td><tt>mostlyclean</tt></td> + * <td>Remove all intermediary files but preserve any binary output files.</td> + * </tr> + * <tr> + * <td><tt><i><filename></i>.s</tt></td> + * <td>Create an assembly listing of a given input C/C++ source file.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_BUILD_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>TARGET</tt></td> + * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td> + * </tr> + * <tr> + * <td><tt>ARCH</tt></td> + * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td> + * </tr> + * <tr> + * <td><tt>MCU</tt></td> + * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td> + * </tr> + * <tr> + * <td><tt>SRC</tt></td> + * <td>List of relative or absolute paths to the application C (.c), C++ (.cpp) and Assembly (.S) source files.</td> + * </tr> + * <tr> + * <td><tt>F_USB</tt></td> + * <td>Speed in Hz of the input clock frequency to the target's USB controller.</td> + * </tr> + * <tr> + * <td><tt>LUFA_PATH</tt></td> + * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_BUILD_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>BOARD</tt></td> + * <td>LUFA board hardware drivers to use (see \ref Page_DeviceSupport).</td> + * </tr> + * <tr> + * <td><tt>OPTIMIZATION</tt></td> + * <td>Optimization level to use when compiling source files (see GCC manual).</td> + * </tr> + * <tr> + * <td><tt>C_STANDARD</tt></td> + * <td>Version of the C standard to apply when compiling C++ source files (see GCC manual).</td> + * </tr> + * <tr> + * <td><tt>CPP_STANDARD</tt></td> + * <td>Version of the C++ standard to apply when compiling C++ source files (see GCC manual).</td> + * </tr> + * <tr> + * <td><tt>DEBUG_FORMAT</tt></td> + * <td>Format of the debug information to embed in the generated object files (see GCC manual).</td> + * </tr> + * <tr> + * <td><tt>DEBUG_LEVEL</tt></td> + * <td>Level of the debugging information to embed in the generated object files (see GCC manual).</td> + * </tr> + * <tr> + * <td><tt>F_CPU</tt></td> + * <td>Speed of the processor CPU clock, in Hz.</td> + * </tr> + * <tr> + * <td><tt>C_FLAGS</tt></td> + * <td>Flags to pass to the C compiler only, after the automatically generated flags.</td> + * </tr> + * <tr> + * <td><tt>CPP_FLAGS</tt></td> + * <td>Flags to pass to the C++ compiler only, after the automatically generated flags.</td> + * </tr> + * <tr> + * <td><tt>ASM_FLAGS</tt></td> + * <td>Flags to pass to the assembler only, after the automatically generated flags.</td> + * </tr> + * <tr> + * <td><tt>CC_FLAGS</tt></td> + * <td>Common flags to pass to the C/C++ compiler and assembler, after the automatically generated flags.</td> + * </tr> + * <tr> + * <td><tt>COMPILER_PATH</tt></td> + * <td>Directory where the C/C++ toolchain is located, if not available in the system <tt>PATH</tt>.</td> + * </tr> + * <tr> + * <td><tt>LD_FLAGS</tt></td> + * <td>Flags to pass to the linker, after the automatically generated flags.</td> + * </tr> + * <tr> + * <td><tt>LINKER_RELAXATIONS</tt></td> + * <td>Enables or disables linker relaxations when linking the application binary. This can reduce the total size + * of the application by replacing full \c CALL instructions with smaller \c RCALL instructions where possible. + * \note On some unpatched versions of binutils, this can cause link failures in some circumstances. If you + * receive a link error <tt>relocation truncated to fit: R_AVR_13_PCREL</tt>, disable this setting.</td> + * </tr> + * <tr> + * <td><tt>OBJDIR</tt></td> + * <td>Directory to place the generated object and dependency files. If set to "." the same folder as the source file will be used. + * \note When this option is enabled, all source filenames <b>must</b> be unique.</td> + * </tr> + * <tr> + * <td><tt>OBJECT_FILES</tt></td> + * <td>List of additional object files that should be linked into the resulting binary.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_BUILD_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_BUILD_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildModule_CORE The CORE build module + * + * The core LUFA build system module, providing common build system help and information targets. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_core.mk + * \endcode + * + * \section SSec_BuildModule_CORE_Requirements Requirements + * This module has no requirements outside a standard *nix shell like environment; the <tt>sh</tt> + * shell, GNU <tt>make</tt> and *nix CoreUtils (<tt>echo</tt>, <tt>printf</tt>, etc.). + * + * \section SSec_BuildModule_CORE_Targets Targets + * + * <table> + * <tr> + * <td><tt>help</tt></td> + * <td>Display build system help and configuration information.</td> + * </tr> + * <tr> + * <td><tt>list_targets</tt></td> + * <td>List all available build targets from the build system.</td> + * </tr> + * <tr> + * <td><tt>list_modules</tt></td> + * <td>List all available build modules from the build system.</td> + * </tr> + * <tr> + * <td><tt>list_mandatory</tt></td> + * <td>List all mandatory parameters required by the included modules.</td> + * </tr> + * <tr> + * <td><tt>list_optional</tt></td> + * <td>List all optional parameters required by the included modules.</td> + * </tr> + * <tr> + * <td><tt>list_provided</tt></td> + * <td>List all variables provided by the included modules.</td> + * </tr> + * <tr> + * <td><tt>list_macros</tt></td> + * <td>List all macros provided by the included modules.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CORE_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CORE_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CORE_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CORE_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildModule_ATPROGRAM The ATPROGRAM build module + * + * The ATPROGRAM programming utility LUFA build system module, providing targets to reprogram an + * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_atprogram.mk + * \endcode + * + * \section SSec_BuildModule_ATPROGRAM_Requirements Requirements + * This module requires the <tt>atprogram.exe</tt> utility to be available in your system's <b>PATH</b> + * variable. The <tt>atprogram.exe</tt> utility is distributed in Atmel AVR Studio 5.x and Atmel Studio 6.x + * inside the application install folder's "\atbackend" subdirectory. + * + * \section SSec_BuildModule_ATPROGRAM_Targets Targets + * + * <table> + * <tr> + * <td><tt>atprogram</tt></td> + * <td>Program the device FLASH memory with the application's executable data.</td> + * </tr> + * <tr> + * <td><tt>atprogram-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_ATPROGRAM_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>MCU</tt></td> + * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td> + * </tr> + * <tr> + * <td><tt>TARGET</tt></td> + * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_ATPROGRAM_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>ATPROGRAM_PROGRAMMER</tt></td> + * <td>Name of the Atmel programmer or debugger tool to communicate with (e.g. <tt>jtagice3</tt>).</td> + * </tr> + * <tr> + * <td><tt>ATPROGRAM_INTERFACE</tt></td> + * <td>Name of the programming interface to use when programming the target (e.g. <tt>spi</tt>).</td> + * </tr> + * <tr> + * <td><tt>ATPROGRAM_PORT</tt></td> + * <td>Name of the communication port to use when when programming with a serially connected tool (e.g. <tt>COM2</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_ATPROGRAM_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_ATPROGRAM_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildModule_AVRDUDE The AVRDUDE build module + * + * The AVRDUDE programming utility LUFA build system module, providing targets to reprogram an + * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_avrdude.mk + * \endcode + * + * \section SSec_BuildModule_AVRDUDE_Requirements Requirements + * This module requires the <tt>avrdude</tt> utility to be available in your system's <b>PATH</b> + * variable. The <tt>avrdude</tt> utility is distributed in the old WinAVR project releases for + * Windows (<a>http://winavr.sourceforge.net</a>) or can be installed on *nix systems via the project's + * source code (<a>https://savannah.nongnu.org/projects/avrdude</a>) or through the package manager. + * + * \section SSec_BuildModule_AVRDUDE_Targets Targets + * + * <table> + * <tr> + * <td><tt>avrdude</tt></td> + * <td>Program the device FLASH memory with the application's executable data.</td> + * </tr> + * <tr> + * <td><tt>avrdude-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_AVRDUDE_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>MCU</tt></td> + * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td> + * </tr> + * <tr> + * <td><tt>TARGET</tt></td> + * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_AVRDUDE_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>AVRDUDE_PROGRAMMER</tt></td> + * <td>Name of the programmer or debugger tool to communicate with (e.g. <tt>jtagicemkii</tt>).</td> + * </tr> + * <tr> + * <td><tt>AVRDUDE_PORT</tt></td> + * <td>Name of the communication port to use when when programming with the connected tool (e.g. <tt>COM2</tt>, <tt>/dev/ttyUSB0</tt> or <tt>usb</tt>).</td> + * </tr> + * <tr> + * <td><tt>AVRDUDE_FLAGS</tt></td> + * <td>Additional flags to pass to avrdude when programming, applied after the automatically generated flags.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_AVRDUDE_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_AVRDUDE_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + + /** \page Page_BuildModule_CPPCHECK The CPPCHECK build module + * + * The CPPCHECK programming utility LUFA build system module, providing targets to statically + * analyze C and C++ source code for errors and performance/style issues. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_cppcheck.mk + * \endcode + * + * \section SSec_BuildModule_CPPCHECK_Requirements Requirements + * This module requires the <tt>cppcheck</tt> utility to be available in your system's <b>PATH</b> + * variable. The <tt>cppcheck</tt> utility is distributed through the project's home page + * (<a>http://cppcheck.sourceforge.net</a>) for Windows, and can be installed on *nix systems via + * the project's source code or through the package manager. + * + * \section SSec_BuildModule_CPPCHECK_Targets Targets + * + * <table> + * <tr> + * <td><tt>cppcheck</tt></td> + * <td>Statically analyze the project source code for issues.</td> + * </tr> + * <tr> + * <td><tt>cppcheck-config</tt></td> + * <td>Check the <tt>cppcheck</tt> configuration - scan source code and warn about missing header files and other issues.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CPPCHECK_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>SRC</tt></td> + * <td>List of source files to statically analyze.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CPPCHECK_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>CPPCHECK_INCLUDES</tt></td> + * <td>Path of extra directories to check when attemting to resolve C/C++ header file includes.</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_EXCLUDES</tt></td> + * <td>Paths or path fragments to exclude when analyzing.</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_MSG_TEMPLATE</tt></td> + * <td>Output message template to use when printing errors, warnings and information (see <tt>cppcheck</tt> documentation).</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_ENABLE</tt></td> + * <td>Analysis rule categories to enable (see <tt>cppcheck</tt> documentation).</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_SUPPRESS</tt></td> + * <td>Specific analysis rules to suppress (see <tt>cppcheck</tt> documentation).</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_FAIL_ON_WARNING</tt></td> + * <td>Set to <b>Y</b> to fail the analysis job with an error exit code if warnings are found, <b>N</b> to continue without failing.</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_QUIET</tt></td> + * <td>Set to <b>Y</b> to suppress all output except warnings and errors, <b>N</b> to show verbose output information.</td> + * </tr> + * <tr> + * <td><tt>CPPCHECK_FLAGS</tt></td> + * <td>Extra flags to pass to <tt>cppcheck</tt>, after the automatically generated flags.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CPPCHECK_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_CPPCHECK_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + + /** \page Page_BuildModule_DFU The DFU build module + * + * The DFU programming utility LUFA build system module, providing targets to reprogram an + * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. + * This module requires a DFU class bootloader to be running in the target, compatible with + * the DFU bootloader protocol as published by Atmel. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_dfu.mk + * \endcode + * + * \section SSec_BuildModule_DFU_Requirements Requirements + * This module requires either the <tt>batchisp</tt> utility from Atmel's FLIP utility, or the open + * source <tt>dfu-programmer</tt> utility (<a>http://dfu-programmer.sourceforge.net/</a>) to be + * available in your system's <b>PATH</b> variable. On *nix systems the <tt>dfu-programmer</tt> utility + * can be installed via the project's source code or through the package manager. + * + * \section SSec_BuildModule_DFU_Targets Targets + * + * <table> + * <tr> + * <td><tt>dfu</tt></td> + * <td>Program the device FLASH memory with the application's executable data using <tt>dfu-programmer</tt>.</td> + * </tr> + * <tr> + * <td><tt>dfu-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>dfu-programmer</tt>.</td> + * </tr> + * <tr> + * <td><tt>flip</tt></td> + * <td>Program the device FLASH memory with the application's executable data using <tt>batchisp</tt>.</td> + * </tr> + * <tr> + * <td><tt>flip-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>batchisp</tt>.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DFU_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>MCU</tt></td> + * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td> + * </tr> + * <tr> + * <td><tt>TARGET</tt></td> + * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DFU_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DFU_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DFU_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + + /** \page Page_BuildModule_DOXYGEN The DOXYGEN build module + * + * The DOXYGEN code documentation utility LUFA build system module, providing targets to generate + * project HTML and other format documentation from a set of source files that include special + * Doxygen comments. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_doxygen.mk + * \endcode + * + * \section SSec_BuildModule_DOXYGEN_Requirements Requirements + * This module requires the <tt>doxygen</tt> utility from the Doxygen website + * (<a>http://www.doxygen.org/</a>) to be available in your system's <b>PATH</b> variable. On *nix + * systems the <tt>doxygen</tt> utility can be installed via the project's source code or through + * the package manager. + * + * \section SSec_BuildModule_DOXYGEN_Targets Targets + * + * <table> + * <tr> + * <td><tt>doxygen</tt></td> + * <td>Generate project documentation.</td> + * </tr> + * <tr> + * <td><tt>doxygen_create</tt></td> + * <td>Create a new Doxygen configuration file using the latest template.</td> + * </tr> + * <tr> + * <td><tt>doxygen_upgrade</tt></td> + * <td>Upgrade an existing Doxygen configuration file to the latest template</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DOXYGEN_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>LUFA_PATH</tt></td> + * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DOXYGEN_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>DOXYGEN_CONF</tt></td> + * <td>Name and path of the base Doxygen configuration file for the project.</td> + * </tr> + * <tr> + * <td><tt>DOXYGEN_FAIL_ON_WARNING</tt></td> + * <td>Set to <b>Y</b> to fail the generation with an error exit code if warnings are found other than unsupported configuration parameters, <b>N</b> to continue without failing.</td> + * </tr> + * <tr> + * <td><tt>DOXYGEN_OVERRIDE_PARAMS</tt></td> + * <td>Extra Doxygen configuration parameters to apply, overriding the corresponding config entry in the project's configuration file (e.g. <tt>QUIET=YES</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DOXYGEN_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_DOXYGEN_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + + /** \page Page_BuildModule_HID The HID build module + * + * The HID programming utility LUFA build system module, providing targets to reprogram an + * Atmel processor's FLASH memory with a project's compiled binary output file. This module + * requires a HID class bootloader to be running in the target, using a protocol compatible + * with the PJRC "HalfKay" protocol (<a>http://www.pjrc.com/teensy/halfkay_protocol.html</a>). + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_hid.mk + * \endcode + * + * \section SSec_BuildModule_HID_Requirements Requirements + * This module requires either the <tt>hid_bootloader_cli</tt> utility from the included LUFA HID + * class bootloader API subdirectory, or the <tt>teensy_loader_cli</tt> utility from PJRC + * (<a>http://www.pjrc.com/teensy/loader_cli.html</a>) to be available in your system's <b>PATH</b> + * variable. + * + * \section SSec_BuildModule_HID_Targets Targets + * + * <table> + * <tr> + * <td><tt>hid</tt></td> + * <td>Program the device FLASH memory with the application's executable data using <tt>hid_bootloader_cli</tt>.</td> + * </tr> + * <tr> + * <td><tt>hid-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>hid_bootloader_cli</tt> and + * a temporary AVR application programmed into the target's FLASH. + * \note This will erase the currently loaded application in the target.</td> + * </tr> + * <tr> + * <td><tt>teensy</tt></td> + * <td>Program the device FLASH memory with the application's executable data using <tt>teensy_loader_cli</tt>.</td> + * </tr> + * <tr> + * <td><tt>teensy-ee</tt></td> + * <td>Program the device EEPROM memory with the application's EEPROM data using <tt>teensy_loader_cli</tt> and + * a temporary AVR application programmed into the target's FLASH. + * \note This will erase the currently loaded application in the target.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_HID_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>MCU</tt></td> + * <td>Name of the Atmel processor model (e.g. <tt>at90usb1287</tt>).</td> + * </tr> + * <tr> + * <td><tt>TARGET</tt></td> + * <td>Name of the application output file prefix (e.g. <tt>TestApplication</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_HID_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_HID_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_HID_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + + /** \page Page_BuildModule_SOURCES The SOURCES build module + * + * The SOURCES LUFA build system module, providing variables listing the various LUFA source files + * required to be build by a project for a given LUFA module. This module gives a way to reference + * LUFA source files symbolically, so that changes to the library structure do not break the library + * makefile. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/lufa_sources.mk + * \endcode + * + * \section SSec_BuildModule_SOURCES_Requirements Requirements + * None. + * + * \section SSec_BuildModule_SOURCES_Targets Targets + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_SOURCES_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>LUFA_PATH</tt></td> + * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> + * </tr> + * <tr> + * <td><tt>ARCH</tt></td> + * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_SOURCES_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_SOURCES_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><tt>LUFA_SRC_USB</tt></td> + * <td>List of LUFA USB driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_USBCLASS</tt></td> + * <td>List of LUFA USB Class driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_TEMPERATURE</tt></td> + * <td>List of LUFA temperature sensor driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_SERIAL</tt></td> + * <td>List of LUFA Serial U(S)ART driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_TWI</tt></td> + * <td>List of LUFA TWI driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_PLATFORM</tt></td> + * <td>List of LUFA architecture specific platform management source files.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_SOURCES_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildTroubleshooting Troubleshooting Information + * + * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and surrounding binaries. This can sometimes lead to problems compiling applications if one of these + * features is buggy in the version of the tools used in a build environment. Missing utilities and incorrectly set makefile configuration options can also result in different + * errors being produced when compilation or other operations are attempted. The table below lists a set of commonly encountered errors and their resolutions. + * + * <table> + * <tr> + * <th>Problem</th> + * <th>Resolution</th> + * </tr> + * <tr> + * <td>Error "<b><tt>relocation truncated to fit: R_AVR_13_PCREL against symbol <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>Try compiling with the setting <tt>LINKER_RELAXATIONS=N</tt> in your LUFA Build System 2.0 makefile, or remove the line <tt>-Wl,--relax</tt> + * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>error: ld terminated with signal 11 [Segmentation fault]</tt></b>" shown when compiling.</td> + * <td>Try compiling with the setting <tt>DEBUG_LEVEL=2</tt> in your LUFA Build System 2.0 makefile, or make sure you are using <tt>binutils</tt> version 2.22 or later.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>EMERGENCY ABORT: INFINITE RECURSION DETECTED</tt></b>" shown when compiling.</td> + * <td>Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with + * GNU make or other variants of Make causing an infinitely recursive build.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Unsupported architecture "<i>{X}</i>"</tt></b>" shown when compiling.</td> + * <td>Ensure your makefile's <tt>ARCH</tt> setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> value not set</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA + * build system modules. Define the value in your project makefile and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> option cannot be blank</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration + * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> option must be Y or N</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No"). + * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Unknown input source file formats: <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>The nominated source files, specified in your project's makefile in the <tt>SRC</tt> configuration option, has an extension that the LUFA build system does not + * recognise. The file extensions are case sensitive, and must be one of the supported formats (<tt>*.c</tt>, <tt>*.cpp</tt> or <tt>*.S</tt>).</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Cannot build with OBJDIR parameter set - one or more object file name is not unique</tt></b>" shown when compiling.</td> + * <td>When a project is built with a non-empty <tt>OBJDIR</tt> object directory name set, all input source files must have unique names, excluding extension and path. + * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Source file does not exist: <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>The nominated input source file, specified in the user project's <tt>SRC</tt> parameter, could not be found. Ensure the source file exists and the absolute or + * relative path given in the user project makefile is correct and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Doxygen configuration file <i>{X}</i> does not exist</tt></b>" shown when upgrading a Doxygen configuration file.</td> + * <td>The nominated Doxygen configuration file, specified in the user project's <tt>DOXYGEN_CONF</tt> parameter, could not be found. Ensure the configuration file exists + * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration + * file.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>avr-gcc: error: unrecognized option '<i>{X}</i>'</tt></b>" shown when compiling.</td> + * <td>An unrecognised option was supplied to the compiler, usually in the <tt>C_FLAGS</tt>, <tt>CPP_FLAGS</tt>, <tt>ASM_FLAGS</tt> or <tt>CC_FLAGS</tt> configuration + * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or + * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>makefile:{X}: {Y}.mk: No such file or directory</tt></b>" shown when make is invoked.</td> + * <td>The path to the nominated makefile module was incorrect. This usually indicates that the makefile <tt>LUFA_PATH</tt> option is not set to a valid relative or + * absolute path to the LUFA library core.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>fatal error: LUFAConfig.h: No such file or directory</tt></b>" shown when compiling.</td> + * <td>The <tt>USE_LUFA_CONFIG_HEADER</tt> compile time option was set in the user project makefile, but the user supplied <tt>LUFAConfig.h</tt> header could not be + * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile <tt>CC_FLAGS</tt> + * parameter.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>ld.exe: section .apitable_trampolines loaded at <i>{X}</i> overlaps section .text</tt></b>" shown when compiling a bootloader.</td> + * <td>The bootloader is compiling too large for the given <tt>FLASH_SIZE_KB</tt> and <tt>BOOT_SECTION_SIZE_KB</tt> parameters set in the bootloader makefile. This + * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the + * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>unknown MCU '<i>{X}</i>' specified</tt></b>" shown when compiling.</td> + * <td>The specified microcontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the + * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>undefined reference to `<i>{X}</i>'</tt></b>" shown when compiling.</td> + * <td>This is usually caused by a missing source file in the user application's <tt>SRC</tt> configuration parameter. If the indicated symbol is one from the LUFA + * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_SOURCES).</td> + * </tr> + * </table> + * + * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp. + */ diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt index 486e9a4270..a34fd58dfa 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt @@ -1 +1 @@ -Copy the Microsoft HV1 Docbook transform contents into this directory (i.e. with the XSLT files in the current folder). The HV1 transform proposal can be found at http://sourceforge.net/tracker/?func=detail&aid=3610290&group_id=21935&atid=373750 .
+Copy the Microsoft HV1 Docbook transform contents into this directory (i.e. with the XSLT files in the current folder). The HV1 transform proposal can be found at http://sourceforge.net/tracker/?func=detail&aid=3610290&group_id=21935&atid=373750 . diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt index c017acfd75..dd69b7e0bd 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt @@ -1 +1 @@ -Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ .
+Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ . diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt index ee8a38340d..8aa4a9413e 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt @@ -1,45 +1,45 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file -->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
- <xsl:import href="../Docbook/mshelp/docbook.xsl"/>
-
- <xsl:output method="xml" indent="no"/>
-
- <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']">
- <span class="hl-keyword" style="color: #0079C1">
- <xsl:apply-templates/>
- </span>
- </xsl:template>
-
- <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']">
- <span class="hl-string" style="color: #800000">
- <xsl:apply-templates/>
- </span>
- </xsl:template>
-
- <xsl:template match="emphasis[@role = 'comment']">
- <em class="hl-comment" style="color: #008000">
- <xsl:apply-templates/>
- </em>
- </xsl:template>
-
- <xsl:template match="emphasis[@role = 'preprocessor']">
- <span class="hl-preprocessor" style="color: #A000A0">
- <xsl:apply-templates/>
- </span>
- </xsl:template>
-
- <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]">
- <xsl:apply-templates />
- </xsl:template>
-
-</xsl:stylesheet>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:import href="../Docbook/mshelp/docbook.xsl"/> + + <xsl:output method="xml" indent="no"/> + + <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> + <span class="hl-keyword" style="color: #0079C1"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> + <span class="hl-string" style="color: #800000"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'comment']"> + <em class="hl-comment" style="color: #008000"> + <xsl:apply-templates/> + </em> + </xsl:template> + + <xsl:template match="emphasis[@role = 'preprocessor']"> + <span class="hl-preprocessor" style="color: #A000A0"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> + <xsl:apply-templates /> + </xsl:template> + +</xsl:stylesheet> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css index 49eb7e9706..0b6ccbd8c1 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css @@ -1,53 +1,53 @@ -/*
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-.programlisting {
- display: block;
- margin-left: 15px;
- padding: 10px;
- background-color: #f4f4f4;
- border: 1px solid #aaaaaa;
- font-family: "Consolas", "Courier New", sans-serif;
- }
-
- code {
- background-color: #f4f4f4;
- font-family: "Consolas", "Courier New", sans-serif;
- }
-
-.note, .warning, .tip {
- display: block;
- margin-left: 15px;
- padding-left: 10px;
- padding-bottom: 5px;
- background-color: #f4f4f4;
- border: 1px solid #aaaaaa;
-}
-
-table {
- border: 1px solid #aaaaaa;
- border-collapse: collapse;
- margin-left: 15px;
- font-size: 10pt;
-}
-
-table thead {
- background-color: #f4f4f4;
-}
-
-table thead th {
- padding: 5px;
-}
-
-table tbody td {
- padding: 5px;
-}
-
-ul {
- padding-left: 20px;
-}
+/* + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +.programlisting { + display: block; + margin-left: 15px; + padding: 10px; + background-color: #f4f4f4; + border: 1px solid #aaaaaa; + font-family: "Consolas", "Courier New", sans-serif; + } + + code { + background-color: #f4f4f4; + font-family: "Consolas", "Courier New", sans-serif; + } + +.note, .warning, .tip { + display: block; + margin-left: 15px; + padding-left: 10px; + padding-bottom: 5px; + background-color: #f4f4f4; + border: 1px solid #aaaaaa; +} + +table { + border: 1px solid #aaaaaa; + border-collapse: collapse; + margin-left: 15px; + font-size: 10pt; +} + +table thead { + background-color: #f4f4f4; +} + +table thead th { + padding: 5px; +} + +table tbody td { + padding: 5px; +} + +ul { + padding-left: 20px; +} diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml index 05ef8b6ba4..112d169942 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml @@ -1,13 +1,13 @@ -<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
- <Default Extension="vsixmanifest" ContentType="text/xml"/>
- <Default Extension="cache" ContentType="text/xml"/>
- <Default Extension="png" ContentType="application/octet-stream"/>
- <Default Extension="txt" ContentType="text/plain"/>
- <Default Extension="xml" ContentType="text/xml"/>
- <Default Extension="zip" ContentType="application/octet-stream"/>
- <Default Extension="dll" ContentType="application/octet-stream" />
- <Default Extension="pkgdef" ContentType="text/plain" />
- <Default Extension="htm" ContentType="text/html" />
- <Default Extension="msha" ContentType="text/html" />
- <Default Extension="mshc" ContentType="application/octet-stream"/>
-</Types>
+<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> + <Default Extension="vsixmanifest" ContentType="text/xml"/> + <Default Extension="cache" ContentType="text/xml"/> + <Default Extension="png" ContentType="application/octet-stream"/> + <Default Extension="txt" ContentType="text/plain"/> + <Default Extension="xml" ContentType="text/xml"/> + <Default Extension="zip" ContentType="application/octet-stream"/> + <Default Extension="dll" ContentType="application/octet-stream" /> + <Default Extension="pkgdef" ContentType="text/plain" /> + <Default Extension="htm" ContentType="text/html" /> + <Default Extension="msha" ContentType="text/html" /> + <Default Extension="mshc" ContentType="application/octet-stream"/> +</Types> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml index 794fd689e1..bd969518a1 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml @@ -1,18 +1,18 @@ -<AsfContentProvider Version="1.0.0">
- <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b">
- <Org>FourWalledCubicle</Org>
- <ShortName>LUFA</ShortName>
- <Author>Dean Camera</Author>
- <Description/>
- <FollowFolderStructure>True</FollowFolderStructure>
- </Identifier>
- <AsfContent Type="zip" Path="contents.zip">
- <Content>
- <Version>0</Version>
- <HelpURL/>
- <Locator/>
- <DbXMLPath>content.xml.cache</DbXMLPath>
- <Description/>
- </Content>
- </AsfContent>
-</AsfContentProvider>
+<AsfContentProvider Version="1.0.0"> + <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b"> + <Org>FourWalledCubicle</Org> + <ShortName>LUFA</ShortName> + <Author>Dean Camera</Author> + <Description/> + <FollowFolderStructure>True</FollowFolderStructure> + </Identifier> + <AsfContent Type="zip" Path="contents.zip"> + <Content> + <Version>0</Version> + <HelpURL/> + <Locator/> + <DbXMLPath>content.xml.cache</DbXMLPath> + <Description/> + </Content> + </AsfContent> +</AsfContentProvider> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest index ea6edeb258..8475017443 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest @@ -1,33 +1,33 @@ -<?xml version="1.0" encoding="utf-8"?>
-
-<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
- <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b">
- <Name>LUFA Library</Name>
- <Author>Dean Camera</Author>
- <Version>0</Version>
- <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl>
- <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description>
-
- <License>License.txt</License>
- <Icon>LUFA_thumb.png</Icon>
- <PreviewImage>LUFA.png</PreviewImage>
-
- <SupportedProducts>
- <IsolatedShell Version="6.1">AtmelStudio</IsolatedShell>
- <IsolatedShell Version="6.2">AtmelStudio</IsolatedShell>
- </SupportedProducts>
-
- <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/>
- <Locale>1033</Locale>
-
- <AllUsers>false</AllUsers>
- </Identifier>
-
- <References/>
-
- <Content>
- <VsPackage>LUFA.pkgdef</VsPackage>
- <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension>
- <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension>
- </Content>
-</Vsix>
+<?xml version="1.0" encoding="utf-8"?> + +<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> + <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> + <Name>LUFA Library</Name> + <Author>Dean Camera</Author> + <Version>0</Version> + <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> + <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> + + <License>License.txt</License> + <Icon>LUFA_thumb.png</Icon> + <PreviewImage>LUFA.png</PreviewImage> + + <SupportedProducts> + <IsolatedShell Version="6.1">AtmelStudio</IsolatedShell> + <IsolatedShell Version="6.2">AtmelStudio</IsolatedShell> + </SupportedProducts> + + <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> + <Locale>1033</Locale> + + <AllUsers>false</AllUsers> + </Identifier> + + <References/> + + <Content> + <VsPackage>LUFA.pkgdef</VsPackage> + <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> + <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> + </Content> +</Vsix> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py index c51cff400d..eb4b71efdf 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py @@ -1,38 +1,38 @@ -"""
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-"""
-
-import sys
-sys.path.append("ProjectGenerator")
-
-
-def show_message(message):
- print("[Project Generator] %s" % message)
- sys.stdout.flush()
-
-
-def main(lufa_root_path):
- try:
- from asf_avrstudio5_interface import PythonFacade
- except ImportError:
- print("Fatal Error: The ASF project generator is missing.")
- return 1
-
- p = PythonFacade(lufa_root_path)
-
- show_message("Checking database sanity...")
- p.check_extension_database_sanity(lufa_root_path)
-
- show_message("Building cache files...")
- p.generate_extension_cache_files(lufa_root_path)
-
- show_message("Cache files created.")
- return 0
-
-
-if __name__ == "__main__":
- sys.exit(main(sys.argv[1]))
+""" + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +""" + +import sys +sys.path.append("ProjectGenerator") + + +def show_message(message): + print("[Project Generator] %s" % message) + sys.stdout.flush() + + +def main(lufa_root_path): + try: + from asf_avrstudio5_interface import PythonFacade + except ImportError: + print("Fatal Error: The ASF project generator is missing.") + return 1 + + p = PythonFacade(lufa_root_path) + + show_message("Checking database sanity...") + p.check_extension_database_sanity(lufa_root_path) + + show_message("Building cache files...") + p.generate_extension_cache_files(lufa_root_path) + + show_message("Cache files created.") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1])) diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml index 28afdda587..86cfc0409d 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml @@ -1,96 +1,96 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <extension-container>
- <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)">
- <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/>
- <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description>
- <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/>
- <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/>
- <license caption="LUFA License" path="LUFA/License.txt"/>
- <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/>
- <online-help>
- <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/>
- <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/>
- <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/>
- </online-help>
- <dependencies/>
- </extension>
- </extension-container>
-
- <asf>
- <device-alias-map name="lufa_avr8">
- <device-support value="at90usb82"/>
- <device-support value="atmega8u2"/>
- <device-support value="at90usb162"/>
- <device-support value="atmega16u2"/>
- <device-support value="atmega16u4"/>
- <device-support value="atmega32u2"/>
- <device-support value="atmega32u4"/>
- <device-support value="at90usb646"/>
- <device-support value="at90usb647"/>
- <device-support value="at90usb1286"/>
- <device-support value="at90usb1287"/>
- </device-alias-map>
-
- <device-alias-map name="lufa_xmega">
- <device-support value="atxmega16a4u"/>
- <device-support value="atxmega32a4u"/>
- <device-support value="atxmega64a4u"/>
- <device-support value="atxmega128a4u"/>
- <device-support value="atxmega64a3u"/>
- <device-support value="atxmega128a3u"/>
- <device-support value="atxmega192a3u"/>
- <device-support value="atxmega256a3u"/>
- <device-support value="atxmega256a3bu"/>
- <device-support value="atxmega128a1u"/>
- <device-support value="atxmega64b3"/>
- <device-support value="atxmega128b3"/>
- <device-support value="atxmega64b1"/>
- <device-support value="atxmega128b1"/>
- <device-support value="atxmega64c3"/>
- <device-support value="atxmega128c3"/>
- <!-- <device-support value="atxmega192c3"/> Wait for ASFP-3339 merge and release before enabling -->
- <device-support value="atxmega256c3"/>
- <device-support value="atxmega384c3"/>
- <device-support value="atxmega16c4"/>
- </device-alias-map>
-
- <device-alias-map name="lufa_uc3">
- <device-support value="at32uc3a364"/>
- <device-support value="at32uc3a364s"/>
- <device-support value="at32uc3a464"/>
- <device-support value="at32uc3a464s"/>
- <device-support value="at32uc3b064"/>
- <device-support value="at32uc3b164"/>
- <device-support value="at32uc3a0128"/>
- <device-support value="at32uc3a1128"/>
- <device-support value="at32uc3a3128"/>
- <device-support value="at32uc3a3128s"/>
- <device-support value="at32uc3a4128"/>
- <device-support value="at32uc3a4128s"/>
- <device-support value="at32uc3b0128"/>
- <device-support value="at32uc3b1128"/>
- <device-support value="at32uc3a0256"/>
- <device-support value="at32uc3a1256"/>
- <device-support value="at32uc3a3256"/>
- <device-support value="at32uc3a3256s"/>
- <device-support value="at32uc3a4256"/>
- <device-support value="at32uc3a4256s"/>
- <device-support value="at32uc3b0256"/>
- <device-support value="at32uc3b1256"/>
- <device-support value="at32uc3a0512"/>
- <device-support value="at32uc3a1512"/>
- <device-support value="at32uc3b0512"/>
- <device-support value="at32uc3b1512"/>
- </device-alias-map>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <extension-container> + <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)"> + <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/> + <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description> + <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/> + <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/> + <license caption="LUFA License" path="LUFA/License.txt"/> + <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/> + <online-help> + <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/> + <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> + <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> + </online-help> + <dependencies/> + </extension> + </extension-container> + + <asf> + <device-alias-map name="lufa_avr8"> + <device-support value="at90usb82"/> + <device-support value="atmega8u2"/> + <device-support value="at90usb162"/> + <device-support value="atmega16u2"/> + <device-support value="atmega16u4"/> + <device-support value="atmega32u2"/> + <device-support value="atmega32u4"/> + <device-support value="at90usb646"/> + <device-support value="at90usb647"/> + <device-support value="at90usb1286"/> + <device-support value="at90usb1287"/> + </device-alias-map> + + <device-alias-map name="lufa_xmega"> + <device-support value="atxmega16a4u"/> + <device-support value="atxmega32a4u"/> + <device-support value="atxmega64a4u"/> + <device-support value="atxmega128a4u"/> + <device-support value="atxmega64a3u"/> + <device-support value="atxmega128a3u"/> + <device-support value="atxmega192a3u"/> + <device-support value="atxmega256a3u"/> + <device-support value="atxmega256a3bu"/> + <device-support value="atxmega128a1u"/> + <device-support value="atxmega64b3"/> + <device-support value="atxmega128b3"/> + <device-support value="atxmega64b1"/> + <device-support value="atxmega128b1"/> + <device-support value="atxmega64c3"/> + <device-support value="atxmega128c3"/> + <!-- <device-support value="atxmega192c3"/> Wait for ASFP-3339 merge and release before enabling --> + <device-support value="atxmega256c3"/> + <device-support value="atxmega384c3"/> + <device-support value="atxmega16c4"/> + </device-alias-map> + + <device-alias-map name="lufa_uc3"> + <device-support value="at32uc3a364"/> + <device-support value="at32uc3a364s"/> + <device-support value="at32uc3a464"/> + <device-support value="at32uc3a464s"/> + <device-support value="at32uc3b064"/> + <device-support value="at32uc3b164"/> + <device-support value="at32uc3a0128"/> + <device-support value="at32uc3a1128"/> + <device-support value="at32uc3a3128"/> + <device-support value="at32uc3a3128s"/> + <device-support value="at32uc3a4128"/> + <device-support value="at32uc3a4128s"/> + <device-support value="at32uc3b0128"/> + <device-support value="at32uc3b1128"/> + <device-support value="at32uc3a0256"/> + <device-support value="at32uc3a1256"/> + <device-support value="at32uc3a3256"/> + <device-support value="at32uc3a3256s"/> + <device-support value="at32uc3a4256"/> + <device-support value="at32uc3a4256s"/> + <device-support value="at32uc3b0256"/> + <device-support value="at32uc3b1256"/> + <device-support value="at32uc3a0512"/> + <device-support value="at32uc3a1512"/> + <device-support value="at32uc3b0512"/> + <device-support value="at32uc3b1512"/> + </device-alias-map> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml index 9e17b188be..c2ef7af4c7 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml @@ -1,34 +1,34 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="service" id="lufa.common" caption="LUFA Common Infrastructure">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <info type="gui-flag" value="hidden"/>
- <build type="doxygen-entry-point" value="Group_Common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Version.h"/>
- <build type="distribute" subtype="license" value="License.txt"/>
-
- <build type="header-file" subtype="api" value="Common/Common.h"/>
- <build type="header-file" value="Common/Architectures.h"/>
- <build type="header-file" value="Common/ArchitectureSpecific.h"/>
- <build type="header-file" value="Common/Attributes.h"/>
- <build type="header-file" value="Common/BoardTypes.h"/>
- <build type="header-file" value="Common/CompilerSpecific.h"/>
- <build type="header-file" value="Common/Endianness.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="service" id="lufa.common" caption="LUFA Common Infrastructure"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + <build type="doxygen-entry-point" value="Group_Common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Version.h"/> + <build type="distribute" subtype="license" value="License.txt"/> + + <build type="header-file" subtype="api" value="Common/Common.h"/> + <build type="header-file" value="Common/Architectures.h"/> + <build type="header-file" value="Common/ArchitectureSpecific.h"/> + <build type="header-file" value="Common/Attributes.h"/> + <build type="header-file" value="Common/BoardTypes.h"/> + <build type="header-file" value="Common/CompilerSpecific.h"/> + <build type="header-file" value="Common/Endianness.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml index 3677d20036..e150aa6458 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml @@ -1,114 +1,114 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture">
- <device-support value="mega"/>
-
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.info"/>
- </board>
-
- <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture">
- <device-support value="xmega"/>
-
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.info"/>
- </board>
-
- <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture">
- <device-support value="uc3"/>
-
- <require idref="lufa.drivers.board"/>
- <require idref="lufa.drivers.board.info"/>
- </board>
-
- <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_BoardInfo"/>
-
- <require idref="lufa.common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_LEDs"/>
-
- <require idref="lufa.common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Buttons"/>
-
- <require idref="lufa.common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Dataflash"/>
-
- <require idref="lufa.common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Joystick"/>
-
- <require idref="lufa.common"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Temperature"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.drivers.peripheral.adc"/>
-
- <build type="c-source" value="Drivers/Board/Temperature.c"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture"> + <device-support value="mega"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture"> + <device-support value="xmega"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture"> + <device-support value="uc3"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_BoardInfo"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_LEDs"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Buttons"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Dataflash"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Joystick"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Temperature"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.peripheral.adc"/> + + <build type="c-source" value="Drivers/Board/Temperature.c"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml index 4b099920b7..ab7e03e4e9 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml @@ -1,853 +1,853 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support">
- <info type="description" value="summary">
- Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards
- compatible with the currently selected device will be shown.
-
- To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual).
- </info>
-
- <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None">
- <device-support value="avr"/>
- <build type="define" name="BOARD" value="BOARD_NONE"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied">
- <device-support value="avr"/>
- <build type="define" name="BOARD" value="BOARD_USER"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4">
- <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01">
- <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_BENITO"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT">
- <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_BLACKCAT"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI">
- <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/>
-
- <device-support value="at90usb646"/>
- <build type="define" name="BOARD" value="BOARD_BUI"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB">
- <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_BUMBLEB"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.joystick"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3">
- <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_CULV3"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE">
- <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_DUCE"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527">
- <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_EVK527"/>
-
- <require idref="lufa.drivers.misc.at45db321c"/>
- <require idref="lufa.drivers.peripheral.spi"/>
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_JMDBU2"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_LEONARDO"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_MAXIMUS"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/>
-
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/>
-
- <device-support value="atmega162"/>
- <build type="define" name="BOARD" value="BOARD_MICROSIN162"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_MINIMUS"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_MULTIO"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162">
- <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_OLIMEX162"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4">
- <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4">
- <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/>
-
- <require idref="lufa.drivers.board.leds"/>
- <require idref="lufa.drivers.board.buttons"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK">
- <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/>
-
- <device-support value="atmega8u2"/>
- <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525">
- <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/>
-
- <device-support value="at90usb1287"/>
- <device-support value="at90usb1286"/>
- <device-support value="at90usb647"/>
- <device-support value="at90usb646"/>
- <build type="define" name="BOARD" value="BOARD_STK525"/>
-
- <require idref="lufa.drivers.misc.at45db321c"/>
- <require idref="lufa.drivers.peripheral.spi"/>
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526">
- <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/>
-
- <device-support value="at90usb162"/>
- <device-support value="at90usb82"/>
- <device-support value="atmega32u2"/>
- <device-support value="atmega16u2"/>
- <device-support value="atmega8u2"/>
- <build type="define" name="BOARD" value="BOARD_STK526"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.spi"/>
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY">
- <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_TEENSY"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2">
- <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/>
-
- <device-support value="at90usb646"/>
- <build type="define" name="BOARD" value="BOARD_TEENSY2"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL">
- <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/>
-
- <device-support value="atmega32u4"/>
- <build type="define" name="BOARD" value="BOARD_TUL"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP">
- <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_UDIP"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/>
-
- <device-support value="atmega8u2"/>
- <device-support value="atmega16u2"/>
- <build type="define" name="BOARD" value="BOARD_UNO"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_USB2AX"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/>
-
- <device-support value="atmega32u2"/>
- <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/>
-
- <device-support value="atmega162"/>
- <build type="define" name="BOARD" value="BOARD_USBFOO"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/>
-
- <device-support value="at90usb1287"/>
- <build type="define" name="BOARD" value="BOARD_USBKEY"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.spi"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII">
- <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/>
-
- <device-support value="at90usb162"/>
- <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)">
- <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/>
-
- <device-support value="at90usb1287"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.spi"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)">
- <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/>
-
- <device-support value="at90usb1287"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.spi"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_XPLAIN"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED">
- <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/>
-
- <device-support value="atxmega256a3bu"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.usart_spi"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED">
- <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/>
-
- <device-support value="atxmega128b1"/>
-
- <require idref="lufa.drivers.misc.at45db642d"/>
- <require idref="lufa.drivers.peripheral.usart_spi"/>
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.dataflash"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100">
- <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/>
-
- <device-support value="at32uc3a0512"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_EVK1100"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101">
- <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/>
-
- <device-support value="at32uc3b0256"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.joystick"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_EVK1101"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104">
- <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/>
-
- <device-support value="at32uc3a3256"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_EVK1104"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED">
- <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/>
-
- <device-support value="at32uc3a3256"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/>
- <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP">
- <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/>
-
- <device-support value="at90usb162"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED">
- <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/>
-
- <device-support value="atxmega384c3"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S">
- <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/>
-
- <device-support value="atmega32u2"/>
-
- <require idref="lufa.drivers.board.buttons"/>
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_U2S"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN">
- <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/>
-
- <device-support value="atmega32u4"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_YUN"/>
- </module>
-
- <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - MICRO">
- <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/>
-
- <device-support value="atmega32u4"/>
-
- <require idref="lufa.drivers.board.leds"/>
-
- <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/>
- <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/>
-
- <build type="define" name="BOARD" value="BOARD_MICRO"/>
- </module>
- </select-by-config>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support"> + <info type="description" value="summary"> + Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards + compatible with the currently selected device will be shown. + + To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual). + </info> + + <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None"> + <device-support value="avr"/> + <build type="define" name="BOARD" value="BOARD_NONE"/> + </module> + + <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied"> + <device-support value="avr"/> + <build type="define" name="BOARD" value="BOARD_USER"/> + </module> + + <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01"> + <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BENITO"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BLACKCAT"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/> + + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_BUI"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BUMBLEB"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_CULV3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE"> + <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_DUCE"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_EVK527"/> + + <require idref="lufa.drivers.misc.at45db321c"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_JMDBU2"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_LEONARDO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MAXIMUS"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/> + + <device-support value="atmega162"/> + <build type="define" name="BOARD" value="BOARD_MICROSIN162"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_MINIMUS"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MULTIO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_OLIMEX162"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK"> + <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/> + + <device-support value="atmega8u2"/> + <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/> + + <device-support value="at90usb1287"/> + <device-support value="at90usb1286"/> + <device-support value="at90usb647"/> + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_STK525"/> + + <require idref="lufa.drivers.misc.at45db321c"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/> + + <device-support value="at90usb162"/> + <device-support value="at90usb82"/> + <device-support value="atmega32u2"/> + <device-support value="atmega16u2"/> + <device-support value="atmega8u2"/> + <build type="define" name="BOARD" value="BOARD_STK526"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_TEENSY"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/> + + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_TEENSY2"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_TUL"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_UDIP"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/> + + <device-support value="atmega8u2"/> + <device-support value="atmega16u2"/> + <build type="define" name="BOARD" value="BOARD_UNO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/> + + <device-support value="atmega162"/> + <build type="define" name="BOARD" value="BOARD_USBFOO"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_USBKEY"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)"> + <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/> + + <device-support value="at90usb1287"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/> + </module> + + <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)"> + <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/> + + <device-support value="at90usb1287"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_XPLAIN"/> + </module> + + <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/> + + <device-support value="atxmega256a3bu"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.usart_spi"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/> + + <device-support value="atxmega128b1"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.usart_spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/> + + <device-support value="at32uc3a0512"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1100"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/> + + <device-support value="at32uc3b0256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1101"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/> + + <device-support value="at32uc3a3256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1104"/> + </module> + + <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/> + + <device-support value="at32uc3a3256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/> + + <device-support value="at90usb162"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/> + </module> + + <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/> + + <device-support value="atxmega384c3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S"> + <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/> + + <device-support value="atmega32u2"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_U2S"/> + </module> + + <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN"> + <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/> + + <device-support value="atmega32u4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_YUN"/> + </module> + + <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - MICRO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/> + + <device-support value="atmega32u4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_MICRO"/> + </module> + </select-by-config> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml index 8680ca2dff..4311ae87b7 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml @@ -1,57 +1,57 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_AT45DB321C"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/>
- </module>
-
- <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_AT45DB321C"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/>
- </module>
-
- <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_RingBuff"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/>
- </module>
-
- <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Terminal"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/>
- </module>
- </asf>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_AT45DB321C"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/> + </module> + + <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_AT45DB321C"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/> + </module> + + <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_RingBuff"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/> + </module> + + <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Terminal"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/> + </module> + </asf> </lufa>
\ No newline at end of file diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml index 3a982e565f..76ea516dbc 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml @@ -1,198 +1,198 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver">
- <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="doxygen-entry-point" value="Group_Serial"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.drivers.misc.ansi"/>
-
- <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/>
- <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="doxygen-entry-point" value="Group_Serial"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.drivers.misc.ansi"/>
-
- <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/>
- <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_Serial"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.drivers.misc.ansi"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
- </select-by-device>
-
- <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver">
- <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="doxygen-entry-point" value="Group_SPI"/>
-
- <require idref="lufa.common"/>
-
- <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="doxygen-entry-point" value="Group_SPI"/>
-
- <require idref="lufa.common"/>
-
- <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_SPI"/>
-
- <require idref="lufa.common"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
- </select-by-device>
-
- <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver">
- <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="doxygen-entry-point" value="Group_SerialSPI"/>
-
- <require idref="lufa.common"/>
-
- <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="doxygen-entry-point" value="Group_SerialSPI"/>
-
- <require idref="lufa.common"/>
-
- <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_SerialSPI"/>
-
- <require idref="lufa.common"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
- </select-by-device>
-
- <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver">
- <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="doxygen-entry-point" value="Group_TWI"/>
-
- <require idref="lufa.common"/>
-
- <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/>
- <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="doxygen-entry-point" value="Group_TWI"/>
-
- <require idref="lufa.common"/>
-
- <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/>
- <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_TWI"/>
-
- <require idref="lufa.common"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
- </select-by-device>
-
- <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver">
- <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="doxygen-entry-point" value="Group_ADC"/>
-
- <require idref="lufa.common"/>
-
- <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/>
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="doxygen-entry-point" value="Group_ADC"/>
-
- <require idref="lufa.common"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
-
- <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_ADC"/>
-
- <require idref="lufa.common"/>
-
- <info type="gui-flag" value="hidden"/>
- </module>
- </select-by-device>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver"> + <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/> + <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/> + <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver"> + <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver"> + <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver"> + <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/> + <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/> + <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver"> + <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml index 7ff4b39492..263c411dff 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml @@ -1,32 +1,32 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_USB"/>
-
- <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/>
- <build type="module-config" subtype="path" value="CodeTemplates"/>
- <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/>
-
- <require idref="lufa.common"/>
- <require idref="lufa.drivers.usb.class"/>
- <require idref="lufa.drivers.usb.core"/>
- </module>
- </asf>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_USB"/> + + <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/> + <build type="module-config" subtype="path" value="CodeTemplates"/> + <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.usb.class"/> + <require idref="lufa.drivers.usb.core"/> + </module> + </asf> </lufa>
\ No newline at end of file diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml index cd18bf10e7..67ab760d33 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml @@ -1,32 +1,32 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <info type="gui-flag" value="hidden"/>
- <build type="doxygen-entry-point" value="Group_USBClassDrivers"/>
-
- <require idref="lufa.drivers.usb.class.android"/>
- <require idref="lufa.drivers.usb.class.audio"/>
- <require idref="lufa.drivers.usb.class.cdc"/>
- <require idref="lufa.drivers.usb.class.hid"/>
- <require idref="lufa.drivers.usb.class.ms"/>
- <require idref="lufa.drivers.usb.class.midi"/>
- <require idref="lufa.drivers.usb.class.printer"/>
- <require idref="lufa.drivers.usb.class.rndis"/>
- <require idref="lufa.drivers.usb.class.si"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + <build type="doxygen-entry-point" value="Group_USBClassDrivers"/> + + <require idref="lufa.drivers.usb.class.android"/> + <require idref="lufa.drivers.usb.class.audio"/> + <require idref="lufa.drivers.usb.class.cdc"/> + <require idref="lufa.drivers.usb.class.hid"/> + <require idref="lufa.drivers.usb.class.ms"/> + <require idref="lufa.drivers.usb.class.midi"/> + <require idref="lufa.drivers.usb.class.printer"/> + <require idref="lufa.drivers.usb.class.rndis"/> + <require idref="lufa.drivers.usb.class.si"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml index 58f8917ef4..58a0b388f6 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml @@ -1,85 +1,85 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common">
- <device-support-alias value="lufa_avr8"/>
- <device-support-alias value="lufa_xmega"/>
- <device-support-alias value="lufa_uc3"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="header-file" value="Drivers/USB/Core/Device.h"/>
- <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/>
- <build type="header-file" value="Drivers/USB/Core/Host.h"/>
- <build type="header-file" value="Drivers/USB/Core/Pipe.h"/>
- <build type="header-file" value="Drivers/USB/Core/OTG.h"/>
- <build type="header-file" value="Drivers/USB/Core/USBController.h"/>
- <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/>
- <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/>
- <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/>
- <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/>
- <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/>
- <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/>
- <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/>
- <build type="c-source" value="Drivers/USB/Core/Events.c"/>
- <build type="header-file" value="Drivers/USB/Core/Events.h"/>
- <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/>
- <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/>
- <build type="c-source" value="Drivers/USB/Core/USBTask.c"/>
- <build type="header-file" value="Drivers/USB/Core/USBTask.h"/>
- <build type="header-file" value="Drivers/USB/Core/USBMode.h"/>
- <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/>
- <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/>
-
- <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/>
- <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/>
- <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/>
- </module>
-
- <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver">
- <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/>
-
- <require idref="lufa.drivers.usb.core.common"/>
- <require idref="lufa.drivers.usb.core.avr8"/>
- </module>
-
- <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/>
-
- <require idref="lufa.drivers.usb.core.common"/>
- <require idref="lufa.drivers.usb.core.xmega"/>
- </module>
-
- <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/>
-
- <require idref="lufa.drivers.usb.core.common"/>
- <require idref="lufa.drivers.usb.core.uc3"/>
- </module>
- </select-by-device>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_USBManagement"/> + + <info type="gui-flag" value="hidden"/> + + <build type="header-file" value="Drivers/USB/Core/Device.h"/> + <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/> + <build type="header-file" value="Drivers/USB/Core/Host.h"/> + <build type="header-file" value="Drivers/USB/Core/Pipe.h"/> + <build type="header-file" value="Drivers/USB/Core/OTG.h"/> + <build type="header-file" value="Drivers/USB/Core/USBController.h"/> + <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/> + <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/> + <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/> + <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/> + <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/> + <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/> + <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/> + <build type="c-source" value="Drivers/USB/Core/Events.c"/> + <build type="header-file" value="Drivers/USB/Core/Events.h"/> + <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/> + <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/> + <build type="c-source" value="Drivers/USB/Core/USBTask.c"/> + <build type="header-file" value="Drivers/USB/Core/USBTask.h"/> + <build type="header-file" value="Drivers/USB/Core/USBMode.h"/> + <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/> + <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/> + + <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/> + <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/> + <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/> + </module> + + <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver"> + <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.avr8"/> + </module> + + <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.xmega"/> + </module> + + <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.uc3"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml index 166b9257aa..4688f05f91 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml @@ -1,43 +1,43 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/>
-
- <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/>
- <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/>
- <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8"> + <device-support-alias value="lufa_avr8"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> + + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml index 7e0540cda7..2e7185f24a 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml @@ -1,42 +1,42 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/>
-
- <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/>
- <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/>
- <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> + + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml index 9e9f4f6a1d..c79a0f5b52 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml @@ -1,36 +1,36 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/>
-
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/>
- <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/>
- <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/>
- <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/>
- <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/>
- <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/>
- <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> + + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml index 02c7463ee5..4ee51f6ee0 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml @@ -1,60 +1,60 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support">
- <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8">
- <device-support-alias value="lufa_avr8"/>
-
- <build type="define" name="ARCH" value="ARCH_AVR8"/>
-
- <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Platform/Platform.h"/>
-
- <require idref="lufa.common"/>
- </module>
-
- <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA">
- <device-support-alias value="lufa_xmega"/>
-
- <build type="define" name="ARCH" value="ARCH_XMEGA"/>
-
- <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Platform/Platform.h"/>
-
- <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/>
-
- <require idref="lufa.platform.xmega"/>
- <require idref="lufa.common"/>
- </module>
-
- <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3">
- <device-support-alias value="lufa_uc3"/>
-
- <build type="define" name="ARCH" value="ARCH_UC3"/>
-
- <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
-
- <build type="include-path" value=".."/>
- <build type="header-file" subtype="api" value="Platform/Platform.h"/>
-
- <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/>
-
- <require idref="lufa.platform.uc3"/>
- <require idref="lufa.common"/>
- </module>
- </select-by-device>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support"> + <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="define" name="ARCH" value="ARCH_AVR8"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <require idref="lufa.common"/> + </module> + + <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="define" name="ARCH" value="ARCH_XMEGA"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/> + + <require idref="lufa.platform.xmega"/> + <require idref="lufa.common"/> + </module> + + <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="define" name="ARCH" value="ARCH_UC3"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/> + + <require idref="lufa.platform.uc3"/> + <require idref="lufa.common"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml index a488c4b83d..98017b08ad 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml @@ -1,26 +1,26 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers">
- <device-support-alias value="lufa_uc3"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/>
-
- <build type="header-file" value="Platform/UC3/ClockManagement.h"/>
- <build type="header-file" value="Platform/UC3/InterruptManagement.h"/>
- <build type="c-source" value="Platform/UC3/InterruptManagement.c"/>
- <build type="asm-source" value="Platform/UC3/Exception.S"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/> + + <build type="header-file" value="Platform/UC3/ClockManagement.h"/> + <build type="header-file" value="Platform/UC3/InterruptManagement.h"/> + <build type="c-source" value="Platform/UC3/InterruptManagement.c"/> + <build type="asm-source" value="Platform/UC3/Exception.S"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml index 1674a77b02..e613fe5206 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml @@ -1,23 +1,23 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf xmlversion="1.0">
- <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers">
- <device-support-alias value="lufa_xmega"/>
-
- <info type="gui-flag" value="hidden"/>
-
- <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/>
-
- <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf xmlversion="1.0"> + <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/> + + <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml index 031c8a2be6..a76b6d0d3b 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml @@ -1,43 +1,43 @@ -<!--
- LUFA Library
- Copyright (C) Dean Camera, 2013.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
--->
-
-<!-- Atmel Studio framework integration file -->
-
-<lufa>
- <asf>
- <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults">
- <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR">
- <info type="gui-flag" value="hidden"/>
- <device-support value="avr"/>
-
- <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/>
- <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/>
- </module>
- </select-by-device>
-
- <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR">
- <info type="gui-flag" value="hidden"/>
- <device-support value="uc3"/>
-
- <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/>
- <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/>
- <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/>
- </module>
- </asf>
-</lufa>
+<!-- + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults"> + <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR"> + <info type="gui-flag" value="hidden"/> + <device-support value="avr"/> + + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/> + </module> + </select-by-device> + + <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR"> + <info type="gui-flag" value="hidden"/> + <device-support value="uc3"/> + + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/> + </module> + </asf> +</lufa> diff --git a/tmk_core/protocol/lufa/descriptor.c b/tmk_core/protocol/lufa/descriptor.c index 539a58d66b..6f2407f580 100644 --- a/tmk_core/protocol/lufa/descriptor.c +++ b/tmk_core/protocol/lufa/descriptor.c @@ -231,9 +231,15 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, .USBSpecification = VERSION_BCD(1,1,0), +#if VIRTSER_ENABLE + .Class = USB_CSCP_IADDeviceClass, + .SubClass = USB_CSCP_IADDeviceSubclass, + .Protocol = USB_CSCP_IADDeviceProtocol, +#else .Class = USB_CSCP_NoDeviceClass, .SubClass = USB_CSCP_NoDeviceSubclass, .Protocol = USB_CSCP_NoDeviceProtocol, +#endif .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, @@ -643,8 +649,112 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .TotalEmbeddedJacks = 0x01, .AssociatedJackID = {0x03} - } + }, #endif + +#ifdef VIRTSER_ENABLE + .CDC_Interface_Association = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, + + .FirstInterfaceIndex = CCI_INTERFACE, + .TotalInterfaces = 2, + + .Class = CDC_CSCP_CDCClass, + .SubClass = CDC_CSCP_ACMSubclass, + .Protocol = CDC_CSCP_ATCommandProtocol, + + .IADStrIndex = NO_DESCRIPTOR, + }, + + .CDC_CCI_Interface = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + + .InterfaceNumber = CCI_INTERFACE, + .AlternateSetting = 0, + + .TotalEndpoints = 1, + + .Class = CDC_CSCP_CDCClass, + .SubClass = CDC_CSCP_ACMSubclass, + .Protocol = CDC_CSCP_ATCommandProtocol, + + .InterfaceStrIndex = NO_DESCRIPTOR + }, + + .CDC_Functional_Header = + { + .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalHeader_t), .Type = DTYPE_CSInterface}, + .Subtype = 0x00, + + .CDCSpecification = VERSION_BCD(1,1,0), + }, + + .CDC_Functional_ACM = + { + .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalACM_t), .Type = DTYPE_CSInterface}, + .Subtype = 0x02, + + .Capabilities = 0x02, + }, + + .CDC_Functional_Union = + { + .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, + .Subtype = 0x06, + + .MasterInterfaceNumber = CCI_INTERFACE, + .SlaveInterfaceNumber = CDI_INTERFACE, + }, + + .CDC_NotificationEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = CDC_NOTIFICATION_EPADDR, + .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = CDC_NOTIFICATION_EPSIZE, + .PollingIntervalMS = 0xFF + }, + + .CDC_DCI_Interface = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + + .InterfaceNumber = CDI_INTERFACE, + .AlternateSetting = 0, + + .TotalEndpoints = 2, + + .Class = CDC_CSCP_CDCDataClass, + .SubClass = CDC_CSCP_NoDataSubclass, + .Protocol = CDC_CSCP_NoDataProtocol, + + .InterfaceStrIndex = NO_DESCRIPTOR + }, + + .CDC_DataOutEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = CDC_OUT_EPADDR, + .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = CDC_EPSIZE, + .PollingIntervalMS = 0x05 + }, + + .CDC_DataInEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = CDC_IN_EPADDR, + .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = CDC_EPSIZE, + .PollingIntervalMS = 0x05 + }, +#endif + }; diff --git a/tmk_core/protocol/lufa/descriptor.h b/tmk_core/protocol/lufa/descriptor.h index 4fd81a0e87..316650a7b1 100644 --- a/tmk_core/protocol/lufa/descriptor.h +++ b/tmk_core/protocol/lufa/descriptor.h @@ -104,6 +104,21 @@ typedef struct USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC; #endif +#ifdef VIRTSER_ENABLE + USB_Descriptor_Interface_Association_t CDC_Interface_Association; + + // CDC Control Interface + USB_Descriptor_Interface_t CDC_CCI_Interface; + USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; + USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; + USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; + USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; + + // CDC Data Interface + USB_Descriptor_Interface_t CDC_DCI_Interface; + USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; + USB_Descriptor_Endpoint_t CDC_DataInEndpoint; +#endif } USB_Descriptor_Configuration_t; @@ -141,8 +156,15 @@ typedef struct # define AS_INTERFACE NKRO_INTERFACE #endif +#ifdef VIRTSER_ENABLE +# define CCI_INTERFACE (AS_INTERFACE + 1) +# define CDI_INTERFACE (AS_INTERFACE + 2) +#else +# define CDI_INTERFACE AS_INTERFACE +#endif + /* nubmer of interfaces */ -#define TOTAL_INTERFACES AS_INTERFACE + 1 +#define TOTAL_INTERFACES (CDI_INTERFACE + 1) // Endopoint number and size @@ -180,11 +202,24 @@ typedef struct # define MIDI_STREAM_OUT_EPNUM (NKRO_IN_EPNUM + 2) # define MIDI_STREAM_IN_EPADDR (ENDPOINT_DIR_IN | MIDI_STREAM_IN_EPNUM) # define MIDI_STREAM_OUT_EPADDR (ENDPOINT_DIR_OUT | MIDI_STREAM_OUT_EPNUM) +#else +# define MIDI_STREAM_OUT_EPNUM NKRO_IN_EPNUM +#endif + +#ifdef VIRTSER_ENABLE +# define CDC_NOTIFICATION_EPNUM (MIDI_STREAM_OUT_EPNUM + 1) +# define CDC_IN_EPNUM (MIDI_STREAM_OUT_EPNUM + 2) +# define CDC_OUT_EPNUM (MIDI_STREAM_OUT_EPNUM + 3) +# define CDC_NOTIFICATION_EPADDR (ENDPOINT_DIR_IN | CDC_NOTIFICATION_EPNUM) +# define CDC_IN_EPADDR (ENDPOINT_DIR_IN | CDC_IN_EPNUM) +# define CDC_OUT_EPADDR (ENDPOINT_DIR_OUT | CDC_OUT_EPNUM) +#else +# define CDC_OUT_EPNUM MIDI_STREAM_OUT_EPNUM #endif -#if defined(__AVR_ATmega32U2__) && MIDI_STREAM_OUT_EPADDR > 4 -# error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI)" +#if defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4 +# error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, SERIAL)" #endif #define KEYBOARD_EPSIZE 8 @@ -193,6 +228,8 @@ typedef struct #define CONSOLE_EPSIZE 32 #define NKRO_EPSIZE 16 #define MIDI_STREAM_EPSIZE 64 +#define CDC_NOTIFICATION_EPSIZE 8 +#define CDC_EPSIZE 16 uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 9ca55dbc9d..9b201374a2 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -60,6 +60,10 @@ #include "bluetooth.h" #endif +#ifdef VIRTSER_ENABLE + #include "virtser.h" +#endif + uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -127,6 +131,34 @@ USB_ClassInfo_MIDI_Device_t USB_MIDI_Interface = #define SYS_COMMON_3 0x30 #endif +#ifdef VIRTSER_ENABLE +USB_ClassInfo_CDC_Device_t cdc_device = +{ + .Config = + { + .ControlInterfaceNumber = CCI_INTERFACE, + .DataINEndpoint = + { + .Address = CDC_IN_EPADDR, + .Size = CDC_EPSIZE, + .Banks = 1, + }, + .DataOUTEndpoint = + { + .Address = CDC_OUT_EPADDR, + .Size = CDC_EPSIZE, + .Banks = 1, + }, + .NotificationEndpoint = + { + .Address = CDC_NOTIFICATION_EPADDR, + .Size = CDC_NOTIFICATION_EPSIZE, + .Banks = 1, + }, + }, +}; +#endif + /******************************************************************************* * Console @@ -311,6 +343,12 @@ void EVENT_USB_Device_ConfigurationChanged(void) ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE); ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE); #endif + +#ifdef VIRTSER_ENABLE + ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPADDR, EP_TYPE_INTERRUPT, CDC_NOTIFICATION_EPSIZE, ENDPOINT_BANK_SINGLE); + ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_OUT_EPADDR, EP_TYPE_BULK, CDC_EPSIZE, ENDPOINT_BANK_SINGLE); + ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_IN_EPADDR, EP_TYPE_BULK, CDC_EPSIZE, ENDPOINT_BANK_SINGLE); +#endif } /* @@ -432,10 +470,15 @@ void EVENT_USB_Device_ControlRequest(void) break; } + +#ifdef VIRTSER_ENABLE + CDC_Device_ProcessControlRequest(&cdc_device); +#endif } /******************************************************************************* * Host driver +p ******************************************************************************/ static uint8_t keyboard_leds(void) { @@ -827,6 +870,61 @@ void MIDI_Task(void) #endif +/******************************************************************************* + * VIRTUAL SERIAL + ******************************************************************************/ + +#ifdef VIRTSER_ENABLE +void virtser_init(void) +{ + cdc_device.State.ControlLineStates.DeviceToHost = CDC_CONTROL_LINE_IN_DSR ; + CDC_Device_SendControlLineStateChange(&cdc_device); +} + +void virtser_recv(uint8_t c) __attribute__ ((weak)); +void virtser_recv(uint8_t c) +{ + // Ignore by default +} + +void virtser_task(void) +{ + uint16_t count = CDC_Device_BytesReceived(&cdc_device); + uint8_t ch; + if (count) + { + ch = CDC_Device_ReceiveByte(&cdc_device); + virtser_recv(ch); + } +} +void virtser_send(const uint8_t byte) +{ + uint8_t timeout = 255; + uint8_t ep = Endpoint_GetCurrentEndpoint(); + + if (cdc_device.State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) + { + /* IN packet */ + Endpoint_SelectEndpoint(cdc_device.Config.DataINEndpoint.Address); + + if (!Endpoint_IsEnabled() || !Endpoint_IsConfigured()) { + Endpoint_SelectEndpoint(ep); + return; + } + + while (timeout-- && !Endpoint_IsReadWriteAllowed()) _delay_us(40); + + Endpoint_Write_8(byte); + CDC_Device_Flush(&cdc_device); + + if (Endpoint_IsINReady()) { + Endpoint_ClearIN(); + } + + Endpoint_SelectEndpoint(ep); + } +} +#endif /******************************************************************************* * main @@ -918,6 +1016,10 @@ int main(void) sleep_led_init(); #endif +#ifdef VIRTSER_ENABLE + virtser_init(); +#endif + print("Keyboard start.\n"); while (1) { #ifndef BLUETOOTH_ENABLE @@ -936,6 +1038,11 @@ int main(void) #endif keyboard_task(); +#ifdef VIRTSER_ENABLE + virtser_task(); + CDC_Device_USBTask(&cdc_device); +#endif + #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif diff --git a/tmk_core/protocol/midi/Config/LUFAConfig.h b/tmk_core/protocol/midi/Config/LUFAConfig.h index fa9404498f..a1d7482672 100755 --- a/tmk_core/protocol/midi/Config/LUFAConfig.h +++ b/tmk_core/protocol/midi/Config/LUFAConfig.h @@ -1,93 +1,93 @@ -/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaim all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- * \brief LUFA Library Configuration Header File
- *
- * This header file is used to configure LUFA's compile time options,
- * as an alternative to the compile time constants supplied through
- * a makefile.
- *
- * For information on what each token does, refer to the LUFA
- * manual section "Summary of Compile Tokens".
- */
-
-#ifndef _LUFA_CONFIG_H_
-#define _LUFA_CONFIG_H_
-
- #if (ARCH == ARCH_AVR8)
-
- /* Non-USB Related Configuration Tokens: */
-// #define DISABLE_TERMINAL_CODES
-
- /* USB Class Driver Related Tokens: */
-// #define HID_HOST_BOOT_PROTOCOL_ONLY
-// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here}
-// #define HID_USAGE_STACK_DEPTH {Insert Value Here}
-// #define HID_MAX_COLLECTIONS {Insert Value Here}
-// #define HID_MAX_REPORTITEMS {Insert Value Here}
-// #define HID_MAX_REPORT_IDS {Insert Value Here}
-// #define NO_CLASS_DRIVER_AUTOFLUSH
-
- /* General USB Driver Related Tokens: */
-// #define ORDERED_EP_CONFIG
- #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
- #define USB_DEVICE_ONLY
-// #define USB_HOST_ONLY
-// #define USB_STREAM_TIMEOUT_MS {Insert Value Here}
-// #define NO_LIMITED_CONTROLLER_CONNECT
-// #define NO_SOF_EVENTS
-
- /* USB Device Mode Driver Related Tokens: */
-// #define USE_RAM_DESCRIPTORS
- #define USE_FLASH_DESCRIPTORS
-// #define USE_EEPROM_DESCRIPTORS
-// #define NO_INTERNAL_SERIAL
- #define FIXED_CONTROL_ENDPOINT_SIZE 8
-// #define DEVICE_STATE_AS_GPIOR {Insert Value Here}
- #define FIXED_NUM_CONFIGURATIONS 1
-// #define CONTROL_ONLY_DEVICE
-// #define INTERRUPT_CONTROL_ENDPOINT
-// #define NO_DEVICE_REMOTE_WAKEUP
-// #define NO_DEVICE_SELF_POWER
-
- /* USB Host Mode Driver Related Tokens: */
-// #define HOST_STATE_AS_GPIOR {Insert Value Here}
-// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
-// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
-// #define NO_AUTO_VBUS_MANAGEMENT
-// #define INVERTED_VBUS_ENABLE_LINE
-
- #else
-
- #error Unsupported architecture for this LUFA configuration file.
-
- #endif
-#endif
+/* + LUFA Library + Copyright (C) Dean Camera, 2012. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Library Configuration Header File + * + * This header file is used to configure LUFA's compile time options, + * as an alternative to the compile time constants supplied through + * a makefile. + * + * For information on what each token does, refer to the LUFA + * manual section "Summary of Compile Tokens". + */ + +#ifndef _LUFA_CONFIG_H_ +#define _LUFA_CONFIG_H_ + + #if (ARCH == ARCH_AVR8) + + /* Non-USB Related Configuration Tokens: */ +// #define DISABLE_TERMINAL_CODES + + /* USB Class Driver Related Tokens: */ +// #define HID_HOST_BOOT_PROTOCOL_ONLY +// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} +// #define HID_USAGE_STACK_DEPTH {Insert Value Here} +// #define HID_MAX_COLLECTIONS {Insert Value Here} +// #define HID_MAX_REPORTITEMS {Insert Value Here} +// #define HID_MAX_REPORT_IDS {Insert Value Here} +// #define NO_CLASS_DRIVER_AUTOFLUSH + + /* General USB Driver Related Tokens: */ +// #define ORDERED_EP_CONFIG + #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) + #define USB_DEVICE_ONLY +// #define USB_HOST_ONLY +// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} +// #define NO_LIMITED_CONTROLLER_CONNECT +// #define NO_SOF_EVENTS + + /* USB Device Mode Driver Related Tokens: */ +// #define USE_RAM_DESCRIPTORS + #define USE_FLASH_DESCRIPTORS +// #define USE_EEPROM_DESCRIPTORS +// #define NO_INTERNAL_SERIAL + #define FIXED_CONTROL_ENDPOINT_SIZE 8 +// #define DEVICE_STATE_AS_GPIOR {Insert Value Here} + #define FIXED_NUM_CONFIGURATIONS 1 +// #define CONTROL_ONLY_DEVICE +// #define INTERRUPT_CONTROL_ENDPOINT +// #define NO_DEVICE_REMOTE_WAKEUP +// #define NO_DEVICE_SELF_POWER + + /* USB Host Mode Driver Related Tokens: */ +// #define HOST_STATE_AS_GPIOR {Insert Value Here} +// #define USB_HOST_TIMEOUT_MS {Insert Value Here} +// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} +// #define NO_AUTO_VBUS_MANAGEMENT +// #define INVERTED_VBUS_ENABLE_LINE + + #else + + #error Unsupported architecture for this LUFA configuration file. + + #endif +#endif diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index f13351ea19..79fc7119a6 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -15,6 +15,29 @@ # Carlos Lamas # +# Enable vpath seraching for source files only +# Without this, output files, could be read from the wrong .build directories +VPATH_SRC := $(VPATH) +vpath %.c $(VPATH_SRC) +vpath %.h $(VPATH_SRC) +vpath %.cpp $(VPATH_SRC) +vpath %.cc $(VPATH_SRC) +vpath %.hpp $(VPATH_SRC) +vpath %.S $(VPATH_SRC) +VPATH := + +# Convert all SRC to OBJ +define OBJ_FROM_SRC +$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$($1_SRC))))) +endef +$(foreach OUTPUT,$(OUTPUTS),$(eval $(OUTPUT)_OBJ +=$(call OBJ_FROM_SRC,$(OUTPUT)))) + +# Define a list of all objects +OBJ := $(foreach OUTPUT,$(OUTPUTS),$($(OUTPUT)_OBJ)) + +MASTER_OUTPUT := $(firstword $(OUTPUTS)) + + # Output format. (can be srec, ihex, binary) FORMAT = ihex @@ -24,55 +47,8 @@ FORMAT = ihex # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s -COLOR ?= true - -ifeq ($(COLOR),true) - NO_COLOR=\033[0m - OK_COLOR=\033[32;01m - ERROR_COLOR=\033[31;01m - WARN_COLOR=\033[33;01m - BLUE=\033[0;34m - BOLD=\033[1m -endif - -ifdef quick - QUICK = $(quick) -endif - -QUICK ?= false AUTOGEN ?= false -ifneq ($(shell awk --version 2>/dev/null),) - AWK=awk -else - AWK=cat && test -endif - -OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n -ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n -WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n - -ifndef $(SILENT) - SILENT = false -endif - -TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }' -TAB_LOG_PLAIN = printf "$$LOG\n" -AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }' -AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }' -PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && false -PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) -PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && false && break -PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) -PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS) -BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi; - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS += $(subst :, ,$(VPATH)) - # Compiler flag to set the C Standard level. # c89 = "ANSI" C @@ -83,17 +59,18 @@ CSTANDARD = -std=gnu99 # Place -D or -U options here for C sources -CDEFS += $(OPT_DEFS) +#CDEFS += # Place -D or -U options here for ASM sources -ADEFS += $(OPT_DEFS) +#ADEFS += # Place -D or -U options here for C++ sources #CPPDEFS += -D__STDC_LIMIT_MACROS #CPPDEFS += -D__STDC_CONSTANT_MACROS -CPPDEFS += $(OPT_DEFS) +#CPPDEFS += + @@ -121,11 +98,7 @@ CFLAGS += -Wstrict-prototypes #CFLAGS += -Wunreachable-code #CFLAGS += -Wsign-compare CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) CFLAGS += $(CSTANDARD) -ifdef CONFIG_H - CFLAGS += -include $(CONFIG_H) -endif #---------------- Compiler Options C++ ---------------- @@ -148,12 +121,7 @@ CPPFLAGS += -Wundef #CPPFLAGS += -Wunreachable-code #CPPFLAGS += -Wsign-compare CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) -CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) #CPPFLAGS += $(CSTANDARD) -ifdef CONFIG_H - CPPFLAGS += -include $(CONFIG_H) -endif - #---------------- Assembler Options ---------------- # -Wa,...: tell GCC to pass this to the assembler. @@ -164,11 +132,8 @@ endif # files -- see avr-libc docs [FIXME: not yet described there] # -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. -ASFLAGS += $(ADEFS) -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 -ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -ifdef CONFIG_H - ASFLAGS += -include $(CONFIG_H) -endif +ASFLAGS += $(ADEFS) +ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 #---------------- Library Options ---------------- # Minimalistic printf version @@ -196,6 +161,7 @@ SCANF_LIB = MATH_LIB = -lm +CREATE_MAP ?= yes #---------------- Linker Options ---------------- @@ -206,7 +172,10 @@ MATH_LIB = -lm # Comennt out "--relax" option to avoid a error such: # (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12' # -LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref + +ifeq ($(CREATE_MAP),yes) + LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref +endif #LDFLAGS += -Wl,--relax LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -223,63 +192,20 @@ COPY = cp WINSHELL = cmd SECHO = $(SILENT) || echo -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_COFF = Converting to AVR COFF: -MSG_EXTENDED_COFF = Converting to AVR Extended COFF: -MSG_FLASH = Creating load file for Flash: -MSG_EEPROM = Creating load file for EEPROM: -MSG_BIN = Creating binary load file for Flash: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling: -MSG_COMPILING_CPP = Compiling: -MSG_ASSEMBLING = Assembling: -MSG_CLEANING = Cleaning project: -MSG_CREATING_LIBRARY = Creating library: -MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \ - Some git sub-modules are out of date or modified, please consider runnning:$(BOLD)\n\ - git submodule sync --recursive\n\ - git submodule update --init --recursive$(NO_COLOR)\n\n\ - You can ignore this warning if you are not compiling any ChibiOS keyboards,\n\ - or if you have modified the ChibiOS libraries yourself. \n\n - - -# Define all object files. -OBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(patsubst %.cpp,$(OBJDIR)/%.o,$(patsubst %.S,$(OBJDIR)/%.o,$(SRC)))) - -# Define all listing files. -LST = $(patsubst %.c,$(OBJDIR)/%.lst,$(patsubst %.cpp,$(OBJDIR)/%.lst,$(patsubst %.S,$(OBJDIR)/%.lst,$(SRC)))) - # Compiler flags to generate dependency files. #GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d -GENDEPFLAGS = -MMD -MP -MF $(BUILD_DIR)/.dep/$(subst /,_,$(subst $(BUILD_DIR)/,,$@)).d +GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@) # Combine all necessary flags and optional flags. # Add target processor to flags. # You can give extra flags at 'make' command line like: make EXTRAFLAGS=-DFOO=bar -ALL_CFLAGS = $(MCUFLAGS) $(CFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) -ALL_CPPFLAGS = $(MCUFLAGS) -x c++ $(CPPFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) +ALL_CFLAGS = $(MCUFLAGS) $(CFLAGS) $(EXTRAFLAGS) +ALL_CPPFLAGS = $(MCUFLAGS) -x c++ $(CPPFLAGS) $(EXTRAFLAGS) ALL_ASFLAGS = $(MCUFLAGS) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS) -# Default target. -all: build sizeafter - -# Quick make that doesn't clean -quick: build sizeafter - -# Change the build target to build a HEX file or a library. -build: elf hex -#build: elf hex eep lss sym -#build: lib +MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@) elf: $(BUILD_DIR)/$(TARGET).elf @@ -290,15 +216,6 @@ sym: $(BUILD_DIR)/$(TARGET).sym LIBNAME=lib$(TARGET).a lib: $(LIBNAME) -check_submodule: - git submodule status --recursive | \ - while IFS= read -r x; do \ - case "$$x" in \ - \ *) ;; \ - *) printf "$(MSG_SUBMODULE_DIRTY)";break;; \ - esac \ - done - # Display size of file. HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex #ELFSIZE = $(SIZE) --mcu=$(MCU) --format=avr $(TARGET).elf @@ -352,150 +269,112 @@ gccversion : $(eval CMD=$(BIN) $< $@ || exit 0) @$(BUILD_CMD) -# Create library from object files. -.SECONDARY : $(BUILD_DIR)/$(TARGET).a -.PRECIOUS : $(OBJ) -%.a: $(OBJ) - @$(SILENT) || printf "$(MSG_CREATING_LIBRARY) $@" | $(AWK_CMD) - $(eval CMD=$(AR) $@ $(OBJ) ) - @$(BUILD_CMD) - -BEGIN = gccversion check_submodule sizebefore +BEGIN = gccversion sizebefore # Link: create ELF output file from object files. .SECONDARY : $(BUILD_DIR)/$(TARGET).elf .PRECIOUS : $(OBJ) -%.elf: $(OBJ) | $(BEGIN) +# Note the obj.txt depeendency is there to force linking if a source file is deleted +%.elf: $(OBJ) $(MASTER_OUTPUT)/cflags.txt $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/obj.txt | $(BEGIN) @$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD) - $(eval CMD=$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)) + $(eval CMD=$(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS)) @$(BUILD_CMD) + + +define GEN_OBJRULE +$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC)) +ifdef $1_CONFIG +$1_CONFIG_FLAGS += -include $$($1_CONFIG) +endif +$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) +$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) +$1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) # Compile: create object files from C source files. -$(OBJDIR)/%.o : %.c | $(BEGIN) - @mkdir -p $(@D) - @$(SILENT) || printf "$(MSG_COMPILING) $<" | $(AWK_CMD) - $(eval CMD=$(CC) -c $(ALL_CFLAGS) $< -o $@) - @$(BUILD_CMD) +$1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN) + @mkdir -p $$(@D) + @$$(SILENT) || printf "$$(MSG_COMPILING) $$<" | $$(AWK_CMD) + $$(eval CMD := $$(CC) -c $$($1_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + @$$(BUILD_CMD) # Compile: create object files from C++ source files. -$(OBJDIR)/%.o : %.cpp | $(BEGIN) - @mkdir -p $(@D) - @$(SILENT) || printf "$(MSG_COMPILING_CPP) $<" | $(AWK_CMD) - $(eval CMD=$(CC) -c $(ALL_CPPFLAGS) $< -o $@) - @$(BUILD_CMD) +$1/%.o : %.cpp $1/%.d $1/cppflags.txt $1/compiler.txt | $(BEGIN) + @mkdir -p $$(@D) + @$$(SILENT) || printf "$$(MSG_COMPILING_CPP) $$<" | $$(AWK_CMD) + $$(eval CMD=$$(CC) -c $$($1_CPPFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + @$$(BUILD_CMD) + +$1/%.o : %.cc $1/%.d $1/cppflags.txt $1/compiler.txt | $(BEGIN) + @mkdir -p $$(@D) + @$$(SILENT) || printf "$$(MSG_COMPILING_CPP) $$<" | $$(AWK_CMD) + $$(eval CMD=$$(CC) -c $$($1_CPPFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) + @$$(BUILD_CMD) -# Compile: create assembler files from C source files. -%.s : %.c | $(BEGIN) - @$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD) - $(eval CMD=$(CC) -S $(ALL_CFLAGS) $< -o $@) - @$(BUILD_CMD) +# Assemble: create object files from assembler source files. +$1/%.o : %.S $1/asflags.txt $1/compiler.txt | $(BEGIN) + @mkdir -p $$(@D) + @$(SILENT) || printf "$$(MSG_ASSEMBLING) $$<" | $$(AWK_CMD) + $$(eval CMD=$$(CC) -c $$($1_ASFLAGS) $$< -o $$@) + @$$(BUILD_CMD) -# Compile: create assembler files from C++ source files. -%.s : %.cpp | $(BEGIN) - @$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD) - $(eval CMD=$(CC) -S $(ALL_CPPFLAGS) $< -o $@) - @$(BUILD_CMD) +$1/force: -# Assemble: create object files from assembler source files. -$(OBJDIR)/%.o : %.S | $(BEGIN) - @mkdir -p $(@D) - @$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD) - $(eval CMD=$(CC) -c $(ALL_ASFLAGS) $< -o $@) - @$(BUILD_CMD) +$1/cflags.txt: $1/force + echo '$$($1_CFLAGS)' | cmp -s - $$@ || echo '$$($1_CFLAGS)' > $$@ + +$1/cppflags.txt: $1/force + echo '$$($1_CPPFLAGS)' | cmp -s - $$@ || echo '$$($1_CPPFLAGS)' > $$@ + +$1/asflags.txt: $1/force + echo '$$($1_ASFLAGS)' | cmp -s - $$@ || echo '$$($1_ASFLAGS)' > $$@ + +$1/compiler.txt: $1/force + $$(CC) --version | cmp -s - $$@ || $$(CC) --version > $$@ +endef + +$(MASTER_OUTPUT)/obj.txt: $(MASTER_OUTPUT)/force + echo '$(OBJ)' | cmp -s - $$@ || echo '$(OBJ)' > $$@ + +$(MASTER_OUTPUT)/ldflags.txt: $(MASTER_OUTPUT)/force + echo '$(LDFLAGS)' | cmp -s - $$@ || echo '$(LDFLAGS)' > $$@ + + +# We have to use static rules for the .d files for some reason +DEPS = $(patsubst %.o,%.d,$(OBJ)) +# Keep the .d files +.PRECIOUS: $(DEPS) +# Empty rule to force recompilation if the .d file is missing +$(DEPS): + + +$(foreach OUTPUT,$(OUTPUTS),$(eval $(call GEN_OBJRULE,$(OUTPUT)))) # Create preprocessed source for use in sending a bug report. %.i : %.c | $(BEGIN) $(CC) -E -mmcu=$(MCU) $(CFLAGS) $< -o $@ # Target: clean project. -clean: +clean: + $(foreach OUTPUT,$(OUTPUTS), $(REMOVE) -r $(OUTPUT) 2>/dev/null) + $(REMOVE) $(BUILD_DIR)/$(TARGET).* show_path: @echo VPATH=$(VPATH) @echo SRC=$(SRC) - -SUBDIRS := $(filter-out %/util/ %/doc/ %/keymaps/ %/old_keymap_files/,$(dir $(wildcard $(TOP_DIR)/keyboards/**/*/Makefile))) -SUBDIRS := $(SUBDIRS) $(dir $(wildcard $(TOP_DIR)/keyboards/*/.)) -SUBDIRS := $(sort $(SUBDIRS)) -# $(error $(SUBDIRS)) -all-keyboards-defaults-%: - @for x in $(SUBDIRS) ; do \ - printf "Compiling with default: $$x" | $(AWK_CMD); \ - LOG=$$($(MAKE) -C $$x $(subst all-keyboards-defaults-,,$@) VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \ - done - -all-keyboards-defaults: all-keyboards-defaults-all - -KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboards/%/=/keyboards/%) -all-keyboards-all: $(addsuffix -all,$(KEYBOARDS)) -all-keyboards-quick: $(addsuffix -quick,$(KEYBOARDS)) -all-keyboards-clean: $(addsuffix -clean,$(KEYBOARDS)) -all-keyboards: all-keyboards-all - -define make_keyboard -$(eval KEYBOARD=$(patsubst /keyboards/%,%,$1)) -$(eval SUBPROJECT=$(lastword $(subst /, ,$(KEYBOARD)))) -$(eval KEYBOARD=$(firstword $(subst /, ,$(KEYBOARD)))) -$(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/keymaps/*/.)))) -$(eval KEYMAPS+=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/*/.)))) -@for x in $(KEYMAPS) ; do \ - printf "Compiling $(BOLD)$(KEYBOARD)/$(SUBPROJECT)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \ - LOG=$$($(MAKE) -C $(TOP_DIR)$1 $2 keymap=$$x VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \ -done -endef - -define make_keyboard_helper -# Just remove the -quick, -all and so on from the first argument and pass it forward -$(call make_keyboard,$(subst -$2,,$1),$2) -endef - -/keyboards/%-quick: - $(call make_keyboard_helper,$@,quick) -/keyboards/%-all: - $(call make_keyboard_helper,$@,all) -/keyboards/%-clean: - $(call make_keyboard_helper,$@,clean) -/keyboards/%: - $(call make_keyboard_helper,$@,all) - -all-keymaps-%: - $(eval MAKECONFIG=$(call get_target,all-keymaps,$@)) - $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/keymaps/*/.)))) - @for x in $(KEYMAPS) ; do \ - printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \ - LOG=$$($(MAKE) $(subst all-keymaps-,,$@) keyboard=$(KEYBOARD) keymap=$$x VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \ - done - -all-keymaps: all-keymaps-all - -GOAL=$(MAKECMDGOALS) -ifeq ($(MAKECMDGOALS),) -GOAL = all -endif -CLEANING_GOALS=clean clean_list all -ifneq ($(findstring $(GOAL),$(CLEANING_GOALS)),) -$(shell $(REMOVE) -r $(BUILD_DIR) 2>/dev/null) -$(shell $(REMOVE) -r $(TOP_DIR)/$(BUILD_DIR)) -$(shell $(REMOVE) -r $(KEYBOARD_PATH)/$(BUILD_DIR)) -$(shell if $$SUBPROJECT; then $(REMOVE) -r $(SUBPROJECT_PATH)/$(BUILD_DIR); fi) -$(shell $(REMOVE) -r $(KEYMAP_PATH)/$(BUILD_DIR)) -endif + @echo OBJ=$(OBJ) # Create build directory -$(shell mkdir $(BUILD_DIR) 2>/dev/null) +$(shell mkdir -p $(BUILD_DIR) 2>/dev/null) # Create object files directory -$(shell mkdir $(OBJDIR) 2>/dev/null) - +$(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null))) # Include the dependency files. --include $(shell mkdir $(BUILD_DIR)/.dep 2>/dev/null) $(wildcard $(BUILD_DIR)/.dep/*) +-include $(patsubst %.o,%.d,$(OBJ)) # Listing of phony targets. -.PHONY : all quick finish sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff check_submodule \ +.PHONY : all finish sizebefore sizeafter gccversion \ +build elf hex eep lss sym coff extcoff \ clean clean_list debug gdb-config show_path \ -program teensy dfu flip dfu-ee flip-ee dfu-start \ -all-keyboards-defaults all-keyboards all-keymaps \ -all-keyboards-defaults-% all-keyboards-% all-keymaps-% +program teensy dfu flip dfu-ee flip-ee dfu-start
\ No newline at end of file diff --git a/tmk_core/tool/chibios/ch-bootloader-jump.patch b/tmk_core/tool/chibios/ch-bootloader-jump.patch index d886576214..c6eb2405c9 100644 --- a/tmk_core/tool/chibios/ch-bootloader-jump.patch +++ b/tmk_core/tool/chibios/ch-bootloader-jump.patch @@ -3,114 +3,114 @@ index 51a79bb..42d07bd 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s +++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s @@ -105,6 +105,13 @@ - #define CRT0_CALL_DESTRUCTORS TRUE
- #endif
-
-+/**
-+ * @brief Magic number for jumping to bootloader.
-+ */
-+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__)
-+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF
-+#endif
-+
- /*===========================================================================*/
- /* Code section. */
- /*===========================================================================*/
+ #define CRT0_CALL_DESTRUCTORS TRUE + #endif + ++/** ++ * @brief Magic number for jumping to bootloader. ++ */ ++#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) ++#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF ++#endif ++ + /*===========================================================================*/ + /* Code section. */ + /*===========================================================================*/ @@ -124,6 +131,17 @@ - .thumb_func
- .global Reset_Handler
- Reset_Handler:
-+
-+#ifdef STM32_BOOTLOADER_ADDRESS
-+ /* jump to bootloader code */
-+ ldr r0, =__ram0_end__-4
-+ ldr r1, =MAGIC_BOOTLOADER_NUMBER
-+ ldr r2, [r0, #0]
-+ str r0, [r0, #0] /* erase stored magic */
-+ cmp r2, r1
-+ beq Bootloader_Jump
-+#endif /* STM32_BOOTLOADER_ADDRESS */
-+
- /* Interrupts are globally masked initially.*/
- cpsid i
-
+ .thumb_func + .global Reset_Handler + Reset_Handler: ++ ++#ifdef STM32_BOOTLOADER_ADDRESS ++ /* jump to bootloader code */ ++ ldr r0, =__ram0_end__-4 ++ ldr r1, =MAGIC_BOOTLOADER_NUMBER ++ ldr r2, [r0, #0] ++ str r0, [r0, #0] /* erase stored magic */ ++ cmp r2, r1 ++ beq Bootloader_Jump ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + /* Interrupts are globally masked initially.*/ + cpsid i + @@ -242,6 +260,21 @@ endfiniloop: - ldr r1, =__default_exit
- bx r1
-
-+#ifdef STM32_BOOTLOADER_ADDRESS
-+/*
-+ * Jump-to-bootloader function.
-+ */
-+
-+ .align 2
-+ .thumb_func
-+Bootloader_Jump:
-+ ldr r0, =STM32_BOOTLOADER_ADDRESS
-+ ldr r1, [r0, #0]
-+ mov sp, r1
-+ ldr r0, [r0, #4]
-+ bx r0
-+#endif /* STM32_BOOTLOADER_ADDRESS */
-+
- #endif
-
- /** @} */
+ ldr r1, =__default_exit + bx r1 + ++#ifdef STM32_BOOTLOADER_ADDRESS ++/* ++ * Jump-to-bootloader function. ++ */ ++ ++ .align 2 ++ .thumb_func ++Bootloader_Jump: ++ ldr r0, =STM32_BOOTLOADER_ADDRESS ++ ldr r1, [r0, #0] ++ mov sp, r1 ++ ldr r0, [r0, #4] ++ bx r0 ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + #endif + + /** @} */ diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s index 4812a29..dca9f88 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s +++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s @@ -140,6 +140,13 @@ - #define CRT0_CPACR_INIT 0x00F00000
- #endif
-
-+/**
-+ * @brief Magic number for jumping to bootloader.
-+ */
-+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__)
-+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF
-+#endif
-+
- /*===========================================================================*/
- /* Code section. */
- /*===========================================================================*/
+ #define CRT0_CPACR_INIT 0x00F00000 + #endif + ++/** ++ * @brief Magic number for jumping to bootloader. ++ */ ++#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) ++#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF ++#endif ++ + /*===========================================================================*/ + /* Code section. */ + /*===========================================================================*/ @@ -164,6 +171,17 @@ - .thumb_func
- .global Reset_Handler
- Reset_Handler:
-+
-+#ifdef STM32_BOOTLOADER_ADDRESS
-+ /* jump to bootloader code */
-+ ldr r0, =__ram0_end__-4
-+ ldr r1, =MAGIC_BOOTLOADER_NUMBER
-+ ldr r2, [r0, #0]
-+ str r0, [r0, #0] /* erase stored magic */
-+ cmp r2, r1
-+ beq Bootloader_Jump
-+#endif /* STM32_BOOTLOADER_ADDRESS */
-+
- /* Interrupts are globally masked initially.*/
- cpsid i
-
+ .thumb_func + .global Reset_Handler + Reset_Handler: ++ ++#ifdef STM32_BOOTLOADER_ADDRESS ++ /* jump to bootloader code */ ++ ldr r0, =__ram0_end__-4 ++ ldr r1, =MAGIC_BOOTLOADER_NUMBER ++ ldr r2, [r0, #0] ++ str r0, [r0, #0] /* erase stored magic */ ++ cmp r2, r1 ++ beq Bootloader_Jump ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + /* Interrupts are globally masked initially.*/ + cpsid i + @@ -305,6 +323,21 @@ endfiniloop: - /* Branching to the defined exit handler.*/
- b __default_exit
-
-+#ifdef STM32_BOOTLOADER_ADDRESS
-+/*
-+ * Jump-to-bootloader function.
-+ */
-+
-+ .align 2
-+ .thumb_func
-+Bootloader_Jump:
-+ ldr r0, =STM32_BOOTLOADER_ADDRESS
-+ ldr r1, [r0, #0]
-+ mov sp, r1
-+ ldr r0, [r0, #4]
-+ bx r0
-+#endif /* STM32_BOOTLOADER_ADDRESS */
-+
- #endif /* !defined(__DOXYGEN__) */
-
- /** @} */
+ /* Branching to the defined exit handler.*/ + b __default_exit + ++#ifdef STM32_BOOTLOADER_ADDRESS ++/* ++ * Jump-to-bootloader function. ++ */ ++ ++ .align 2 ++ .thumb_func ++Bootloader_Jump: ++ ldr r0, =STM32_BOOTLOADER_ADDRESS ++ ldr r1, [r0, #0] ++ mov sp, r1 ++ ldr r0, [r0, #4] ++ bx r0 ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + #endif /* !defined(__DOXYGEN__) */ + + /** @} */ |