summary refs log tree commit diff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-07-09 21:26:54 -0400
committerJack Humbert <jack.humb@gmail.com>2017-07-09 21:26:54 -0400
commit62214986013ee6596afa55023f7a95a8527d910f (patch)
tree1ac0e8e072c3fd94dc89fa61940f1b3cae91e05a
parentfcd08b8c7d66cf4cf5724b7b2468d3569488114f (diff)
parent8858438a770c1c982f33b296447ca77176c751f7 (diff)
Merge commit '8858438a770c1c982f33b296447ca77176c751f7'
-rw-r--r--lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S204
-rw-r--r--lib/lufa/Bootloaders/MassStorage/makefile150
-rw-r--r--lib/lufa/Bootloaders/Printer/BootloaderAPITable.S182
-rw-r--r--lib/lufa/Bootloaders/Printer/makefile124
-rw-r--r--lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt90
-rw-r--r--lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest64
6 files changed, 407 insertions, 407 deletions
diff --git a/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S b/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S
index 30165700d7..44eb15ea9d 100644
--- a/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S
+++ b/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S
@@ -1,102 +1,102 @@
-/*

-             LUFA Library

-     Copyright (C) Dean Camera, 2017.

-

-  dean [at] fourwalledcubicle [dot] com

-           www.lufa-lib.org

-*/

-

-/*

-  Copyright 2017  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, 2017.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2017  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/lib/lufa/Bootloaders/MassStorage/makefile b/lib/lufa/Bootloaders/MassStorage/makefile
index 7f0ec82a7f..f3948e754f 100644
--- a/lib/lufa/Bootloaders/MassStorage/makefile
+++ b/lib/lufa/Bootloaders/MassStorage/makefile
@@ -1,75 +1,75 @@
-#

-#             LUFA Library

-#     Copyright (C) Dean Camera, 2017.

-#

-#  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-specific DMBS extension modules

-DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA

-include $(DMBS_LUFA_PATH)/lufa-sources.mk

-include $(DMBS_LUFA_PATH)/lufa-gcc.mk

-

-# Include common DMBS build system modules

-DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS

-include $(DMBS_PATH)/core.mk

-include $(DMBS_PATH)/cppcheck.mk

-include $(DMBS_PATH)/doxygen.mk

-include $(DMBS_PATH)/dfu.mk

-include $(DMBS_PATH)/gcc.mk

-include $(DMBS_PATH)/hid.mk

-include $(DMBS_PATH)/avrdude.mk

-include $(DMBS_PATH)/atprogram.mk

+#
+#             LUFA Library
+#     Copyright (C) Dean Camera, 2017.
+#
+#  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-specific DMBS extension modules
+DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA
+include $(DMBS_LUFA_PATH)/lufa-sources.mk
+include $(DMBS_LUFA_PATH)/lufa-gcc.mk
+
+# Include common DMBS build system modules
+DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS
+include $(DMBS_PATH)/core.mk
+include $(DMBS_PATH)/cppcheck.mk
+include $(DMBS_PATH)/doxygen.mk
+include $(DMBS_PATH)/dfu.mk
+include $(DMBS_PATH)/gcc.mk
+include $(DMBS_PATH)/hid.mk
+include $(DMBS_PATH)/avrdude.mk
+include $(DMBS_PATH)/atprogram.mk
diff --git a/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S b/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S
index 76f37bf499..d8358c31ce 100644
--- a/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S
+++ b/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S
@@ -1,91 +1,91 @@
-/*

-             LUFA Library

-     Copyright (C) Dean Camera, 2017.

-

-  dean [at] fourwalledcubicle [dot] com

-           www.lufa-lib.org

-*/

-

-/*

-  Copyright 2017  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, 2017.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2017  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/lib/lufa/Bootloaders/Printer/makefile b/lib/lufa/Bootloaders/Printer/makefile
index 2c8582ca22..1de35bba02 100644
--- a/lib/lufa/Bootloaders/Printer/makefile
+++ b/lib/lufa/Bootloaders/Printer/makefile
@@ -1,62 +1,62 @@
-#

-#             LUFA Library

-#     Copyright (C) Dean Camera, 2017.

-#

-#  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-specific DMBS extension modules

-DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA

-include $(DMBS_LUFA_PATH)/lufa-sources.mk

-include $(DMBS_LUFA_PATH)/lufa-gcc.mk

-

-# Include common DMBS build system modules

-DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS

-include $(DMBS_PATH)/core.mk

-include $(DMBS_PATH)/cppcheck.mk

-include $(DMBS_PATH)/doxygen.mk

-include $(DMBS_PATH)/dfu.mk

-include $(DMBS_PATH)/gcc.mk

-include $(DMBS_PATH)/hid.mk

-include $(DMBS_PATH)/avrdude.mk

-include $(DMBS_PATH)/atprogram.mk

+#
+#             LUFA Library
+#     Copyright (C) Dean Camera, 2017.
+#
+#  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-specific DMBS extension modules
+DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA
+include $(DMBS_LUFA_PATH)/lufa-sources.mk
+include $(DMBS_LUFA_PATH)/lufa-gcc.mk
+
+# Include common DMBS build system modules
+DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS
+include $(DMBS_PATH)/core.mk
+include $(DMBS_PATH)/cppcheck.mk
+include $(DMBS_PATH)/doxygen.mk
+include $(DMBS_PATH)/dfu.mk
+include $(DMBS_PATH)/gcc.mk
+include $(DMBS_PATH)/hid.mk
+include $(DMBS_PATH)/avrdude.mk
+include $(DMBS_PATH)/atprogram.mk
diff --git a/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
index e7e230166d..e7b57ab641 100644
--- a/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
+++ b/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
@@ -1,45 +1,45 @@
-<!--

-             LUFA Library

-     Copyright (C) Dean Camera, 2017.

-

-  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, 2017.
+
+  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/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
index f155618b73..a1901cb567 100644
--- a/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
+++ b/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
@@ -1,32 +1,32 @@
-<?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="7.0">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="7.0">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>