]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge commit '8858438a770c1c982f33b296447ca77176c751f7'
authorJack Humbert <jack.humb@gmail.com>
Mon, 10 Jul 2017 01:26:54 +0000 (21:26 -0400)
committerJack Humbert <jack.humb@gmail.com>
Mon, 10 Jul 2017 01:26:54 +0000 (21:26 -0400)
1  2 
lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S
lib/lufa/Bootloaders/MassStorage/makefile
lib/lufa/Bootloaders/Printer/BootloaderAPITable.S
lib/lufa/Bootloaders/Printer/makefile
lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest

index 30165700d71888130346a83c39621ee4c7e73de2,0000000000000000000000000000000000000000..44eb15ea9d6190dbd7708d7f858c3434435fcae3
mode 100644,000000..100644
--- /dev/null
@@@ -1,102 -1,0 +1,102 @@@
- /*\r
-              LUFA Library\r
-      Copyright (C) Dean Camera, 2017.\r
\r
-   dean [at] fourwalledcubicle [dot] com\r
-            www.lufa-lib.org\r
- */\r
\r
- /*\r
-   Copyright 2017  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
\r
-   Permission to use, copy, modify, distribute, and sell this\r
-   software and its documentation for any purpose is hereby granted\r
-   without fee, provided that the above copyright notice appear in\r
-   all copies and that both that the copyright notice and this\r
-   permission notice and warranty disclaimer appear in supporting\r
-   documentation, and that the name of the author not be used in\r
-   advertising or publicity pertaining to distribution of the\r
-   software without specific, written prior permission.\r
\r
-   The author disclaims all warranties with regard to this\r
-   software, including all implied warranties of merchantability\r
-   and fitness.  In no event shall the author be liable for any\r
-   special, indirect or consequential damages or any damages\r
-   whatsoever resulting from loss of use, data or profits, whether\r
-   in an action of contract, negligence or other tortious action,\r
-   arising out of or in connection with the use or performance of\r
-   this software.\r
- */\r
\r
- #if AUX_BOOT_SECTION_SIZE > 0\r
- #warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation).\r
\r
- ; Trampoline to jump over the AUX bootloader section to the start of the bootloader,\r
- ; on devices where an AUX bootloader section is used.\r
- .section .boot_aux_trampoline, "ax"\r
- .global Boot_AUX_Trampoline\r
- Boot_AUX_Trampoline:\r
-       jmp BOOT_START_ADDR\r
- #endif\r
\r
- ; Trampolines to actual API implementations if the target address is outside the\r
- ; range of a rjmp instruction (can happen with large bootloader sections)\r
- .section .apitable_trampolines, "ax"\r
- .global BootloaderAPI_Trampolines\r
- BootloaderAPI_Trampolines:\r
\r
-       BootloaderAPI_ErasePage_Trampoline:\r
-               jmp BootloaderAPI_ErasePage\r
-       BootloaderAPI_WritePage_Trampoline:\r
-               jmp BootloaderAPI_WritePage\r
-       BootloaderAPI_FillWord_Trampoline:\r
-               jmp BootloaderAPI_FillWord\r
-       BootloaderAPI_ReadSignature_Trampoline:\r
-               jmp BootloaderAPI_ReadSignature\r
-       BootloaderAPI_ReadFuse_Trampoline:\r
-               jmp BootloaderAPI_ReadFuse\r
-       BootloaderAPI_ReadLock_Trampoline:\r
-               jmp BootloaderAPI_ReadLock\r
-       BootloaderAPI_WriteLock_Trampoline:\r
-               jmp BootloaderAPI_WriteLock\r
-       BootloaderAPI_UNUSED1:\r
-               ret\r
-       BootloaderAPI_UNUSED2:\r
-               ret\r
-       BootloaderAPI_UNUSED3:\r
-               ret\r
-       BootloaderAPI_UNUSED4:\r
-               ret\r
-       BootloaderAPI_UNUSED5:\r
-               ret\r
\r
\r
\r
- ; API function jump table\r
- .section .apitable_jumptable, "ax"\r
- .global BootloaderAPI_JumpTable\r
- BootloaderAPI_JumpTable:\r
\r
-       rjmp BootloaderAPI_ErasePage_Trampoline\r
-       rjmp BootloaderAPI_WritePage_Trampoline\r
-       rjmp BootloaderAPI_FillWord_Trampoline\r
-       rjmp BootloaderAPI_ReadSignature_Trampoline\r
-       rjmp BootloaderAPI_ReadFuse_Trampoline\r
-       rjmp BootloaderAPI_ReadLock_Trampoline\r
-       rjmp BootloaderAPI_WriteLock_Trampoline\r
-       rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1\r
-       rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2\r
-       rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3\r
-       rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4\r
-       rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5\r
\r
\r
\r
- ; Bootloader table signatures and information\r
- .section .apitable_signatures, "ax"\r
- .global BootloaderAPI_Signatures\r
- BootloaderAPI_Signatures:\r
\r
-       .long BOOT_START_ADDR ; Start address of the bootloader\r
-       .word 0xDF30 ; Signature for the MS class bootloader, V1\r
-       .word 0xDCFB ; Signature for a LUFA class bootloader\r
++/*
++             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
index 7f0ec82a7f4aa84de16bedbf82161feeba06a006,0000000000000000000000000000000000000000..f3948e754f5060e72f7e9fc210da472be5860552
mode 100644,000000..100644
--- /dev/null
@@@ -1,75 -1,0 +1,75 @@@
- #\r
- #             LUFA Library\r
- #     Copyright (C) Dean Camera, 2017.\r
- #\r
- #  dean [at] fourwalledcubicle [dot] com\r
- #           www.lufa-lib.org\r
- #\r
- # --------------------------------------\r
- #         LUFA Project Makefile.\r
- # --------------------------------------\r
\r
- # Run "make help" for target help.\r
\r
- MCU          = at90usb1287\r
- ARCH         = AVR8\r
- BOARD        = USBKEY\r
- F_CPU        = 8000000\r
- F_USB        = $(F_CPU)\r
- OPTIMIZATION = s\r
- TARGET       = BootloaderMassStorage\r
- SRC          = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)\r
- LUFA_PATH    = ../../LUFA\r
- CC_FLAGS     = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)\r
- LD_FLAGS     = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)\r
\r
- # Flash size and bootloader section sizes of the target, in KB. These must\r
- # match the target's total FLASH size and the bootloader size set in the\r
- # device's fuses.\r
- FLASH_SIZE_KB         = 128\r
- BOOT_SECTION_SIZE_KB  = 8\r
\r
- # Bootloader address calculation formulas\r
- # Do not modify these macros, but rather modify the dependent values above.\r
- CALC_ADDRESS_IN_HEX   = $(shell printf "0x%X" $$(( $(1) )) )\r
- BOOT_START_OFFSET     = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )\r
- BOOT_SEC_OFFSET       = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )\r
\r
- # Bootloader linker section flags for relocating the API table sections to\r
- # known FLASH addresses - these should not normally be user-edited.\r
- BOOT_SECTION_LD_FLAG  = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))\r
- BOOT_API_LD_FLAGS     = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)\r
- BOOT_API_LD_FLAGS    += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable,   BootloaderAPI_JumpTable,   32)\r
- BOOT_API_LD_FLAGS    += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures,  BootloaderAPI_Signatures,  8)\r
\r
- # Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the\r
- # bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum\r
- # bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices.\r
- ifeq ($(BOOT_SECTION_SIZE_KB),8)\r
-   CC_FLAGS           += -DAUX_BOOT_SECTION_SIZE=0\r
- else\r
-   AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB))\r
\r
-   CC_FLAGS           += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)'\r
-   LD_FLAGS           += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16))\r
-   LD_FLAGS           += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024)\r
- endif\r
\r
- # Default target\r
- all:\r
\r
- # Include LUFA-specific DMBS extension modules\r
- DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA\r
- include $(DMBS_LUFA_PATH)/lufa-sources.mk\r
- include $(DMBS_LUFA_PATH)/lufa-gcc.mk\r
\r
- # Include common DMBS build system modules\r
- DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS\r
- include $(DMBS_PATH)/core.mk\r
- include $(DMBS_PATH)/cppcheck.mk\r
- include $(DMBS_PATH)/doxygen.mk\r
- include $(DMBS_PATH)/dfu.mk\r
- include $(DMBS_PATH)/gcc.mk\r
- include $(DMBS_PATH)/hid.mk\r
- include $(DMBS_PATH)/avrdude.mk\r
- include $(DMBS_PATH)/atprogram.mk\r
++#
++#             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
index 76f37bf499c5d37af2180503777b121f28740394,0000000000000000000000000000000000000000..d8358c31ce5c44e24a1ea05fd7386cd0c75dd909
mode 100644,000000..100644
--- /dev/null
@@@ -1,91 -1,0 +1,91 @@@
- /*\r
-              LUFA Library\r
-      Copyright (C) Dean Camera, 2017.\r
\r
-   dean [at] fourwalledcubicle [dot] com\r
-            www.lufa-lib.org\r
- */\r
\r
- /*\r
-   Copyright 2017  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
\r
-   Permission to use, copy, modify, distribute, and sell this\r
-   software and its documentation for any purpose is hereby granted\r
-   without fee, provided that the above copyright notice appear in\r
-   all copies and that both that the copyright notice and this\r
-   permission notice and warranty disclaimer appear in supporting\r
-   documentation, and that the name of the author not be used in\r
-   advertising or publicity pertaining to distribution of the\r
-   software without specific, written prior permission.\r
\r
-   The author disclaims all warranties with regard to this\r
-   software, including all implied warranties of merchantability\r
-   and fitness.  In no event shall the author be liable for any\r
-   special, indirect or consequential damages or any damages\r
-   whatsoever resulting from loss of use, data or profits, whether\r
-   in an action of contract, negligence or other tortious action,\r
-   arising out of or in connection with the use or performance of\r
-   this software.\r
- */\r
\r
- ; Trampolines to actual API implementations if the target address is outside the\r
- ; range of a rjmp instruction (can happen with large bootloader sections)\r
- .section .apitable_trampolines, "ax"\r
- .global BootloaderAPI_Trampolines\r
- BootloaderAPI_Trampolines:\r
\r
-       BootloaderAPI_ErasePage_Trampoline:\r
-               jmp BootloaderAPI_ErasePage\r
-       BootloaderAPI_WritePage_Trampoline:\r
-               jmp BootloaderAPI_WritePage\r
-       BootloaderAPI_FillWord_Trampoline:\r
-               jmp BootloaderAPI_FillWord\r
-       BootloaderAPI_ReadSignature_Trampoline:\r
-               jmp BootloaderAPI_ReadSignature\r
-       BootloaderAPI_ReadFuse_Trampoline:\r
-               jmp BootloaderAPI_ReadFuse\r
-       BootloaderAPI_ReadLock_Trampoline:\r
-               jmp BootloaderAPI_ReadLock\r
-       BootloaderAPI_WriteLock_Trampoline:\r
-               jmp BootloaderAPI_WriteLock\r
-       BootloaderAPI_UNUSED1:\r
-               ret\r
-       BootloaderAPI_UNUSED2:\r
-               ret\r
-       BootloaderAPI_UNUSED3:\r
-               ret\r
-       BootloaderAPI_UNUSED4:\r
-               ret\r
-       BootloaderAPI_UNUSED5:\r
-               ret\r
\r
\r
\r
- ; API function jump table\r
- .section .apitable_jumptable, "ax"\r
- .global BootloaderAPI_JumpTable\r
- BootloaderAPI_JumpTable:\r
\r
-       rjmp BootloaderAPI_ErasePage_Trampoline\r
-       rjmp BootloaderAPI_WritePage_Trampoline\r
-       rjmp BootloaderAPI_FillWord_Trampoline\r
-       rjmp BootloaderAPI_ReadSignature_Trampoline\r
-       rjmp BootloaderAPI_ReadFuse_Trampoline\r
-       rjmp BootloaderAPI_ReadLock_Trampoline\r
-       rjmp BootloaderAPI_WriteLock_Trampoline\r
-       rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1\r
-       rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2\r
-       rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3\r
-       rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4\r
-       rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5\r
\r
\r
\r
- ; Bootloader table signatures and information\r
- .section .apitable_signatures, "ax"\r
- .global BootloaderAPI_Signatures\r
- BootloaderAPI_Signatures:\r
\r
-       .long BOOT_START_ADDR ; Start address of the bootloader\r
-       .word 0xDF20 ; Signature for the Printer class bootloader\r
-       .word 0xDCFB ; Signature for a LUFA class bootloader\r
++/*
++             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
index 2c8582ca22ab2c846b7cb5ea04b39ef7713ba3f6,0000000000000000000000000000000000000000..1de35bba02ebc461298755cd91d08a239d4eddc0
mode 100644,000000..100644
--- /dev/null
@@@ -1,62 -1,0 +1,62 @@@
- #\r
- #             LUFA Library\r
- #     Copyright (C) Dean Camera, 2017.\r
- #\r
- #  dean [at] fourwalledcubicle [dot] com\r
- #           www.lufa-lib.org\r
- #\r
- # --------------------------------------\r
- #         LUFA Project Makefile.\r
- # --------------------------------------\r
\r
- # Run "make help" for target help.\r
\r
- MCU          = at90usb1287\r
- ARCH         = AVR8\r
- BOARD        = USBKEY\r
- F_CPU        = 8000000\r
- F_USB        = $(F_CPU)\r
- OPTIMIZATION = s\r
- TARGET       = BootloaderPrinter\r
- SRC          = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)\r
- LUFA_PATH    = ../../LUFA\r
- CC_FLAGS     = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)\r
- LD_FLAGS     = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)\r
\r
- # Flash size and bootloader section sizes of the target, in KB. These must\r
- # match the target's total FLASH size and the bootloader size set in the\r
- # device's fuses.\r
- FLASH_SIZE_KB         = 128\r
- BOOT_SECTION_SIZE_KB  = 8\r
\r
- # Bootloader address calculation formulas\r
- # Do not modify these macros, but rather modify the dependent values above.\r
- CALC_ADDRESS_IN_HEX   = $(shell printf "0x%X" $$(( $(1) )) )\r
- BOOT_START_OFFSET     = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )\r
- BOOT_SEC_OFFSET       = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )\r
\r
- # Bootloader linker section flags for relocating the API table sections to\r
- # known FLASH addresses - these should not normally be user-edited.\r
- BOOT_SECTION_LD_FLAG  = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))\r
- BOOT_API_LD_FLAGS     = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)\r
- BOOT_API_LD_FLAGS    += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable,   BootloaderAPI_JumpTable,   32)\r
- BOOT_API_LD_FLAGS    += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures,  BootloaderAPI_Signatures,  8)\r
\r
- # Default target\r
- all:\r
\r
- # Include LUFA-specific DMBS extension modules\r
- DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA\r
- include $(DMBS_LUFA_PATH)/lufa-sources.mk\r
- include $(DMBS_LUFA_PATH)/lufa-gcc.mk\r
\r
- # Include common DMBS build system modules\r
- DMBS_PATH      ?= $(LUFA_PATH)/Build/DMBS/DMBS\r
- include $(DMBS_PATH)/core.mk\r
- include $(DMBS_PATH)/cppcheck.mk\r
- include $(DMBS_PATH)/doxygen.mk\r
- include $(DMBS_PATH)/dfu.mk\r
- include $(DMBS_PATH)/gcc.mk\r
- include $(DMBS_PATH)/hid.mk\r
- include $(DMBS_PATH)/avrdude.mk\r
- include $(DMBS_PATH)/atprogram.mk\r
++#
++#             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
index e7e230166dc5c9f65f2e7547f7f155e2b78d1852,0000000000000000000000000000000000000000..e7b57ab6415620c8c763e1d3564107c948841b0e
mode 100644,000000..100644
--- /dev/null
@@@ -1,45 -1,0 +1,45 @@@
- <!--\r
-              LUFA Library\r
-      Copyright (C) Dean Camera, 2017.\r
\r
-   dean [at] fourwalledcubicle [dot] com\r
-            www.lufa-lib.org\r
- -->\r
\r
- <!-- Docbook XML to Microsoft Help Viewer 1.0 transform file -->\r
\r
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">\r
\r
-       <xsl:import href="../Docbook/mshelp/docbook.xsl"/>\r
\r
-       <xsl:output method="xml" indent="no"/>\r
\r
-       <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']">\r
-               <span class="hl-keyword" style="color: #0079C1">\r
-                       <xsl:apply-templates/>\r
-               </span>\r
-       </xsl:template>\r
\r
-       <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']">\r
-               <span class="hl-string" style="color: #800000">\r
-                       <xsl:apply-templates/>\r
-               </span>\r
-       </xsl:template>\r
\r
-       <xsl:template match="emphasis[@role = 'comment']">\r
-               <em class="hl-comment" style="color: #008000">\r
-                       <xsl:apply-templates/>\r
-               </em>\r
-       </xsl:template>\r
\r
-       <xsl:template match="emphasis[@role = 'preprocessor']">\r
-               <span class="hl-preprocessor" style="color: #A000A0">\r
-                       <xsl:apply-templates/>\r
-               </span>\r
-       </xsl:template>\r
\r
-       <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]">\r
-               <xsl:apply-templates />\r
-       </xsl:template>\r
\r
- </xsl:stylesheet>\r
++<!--
++             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>
index f155618b739c0656105e09be20778c5fd8cab01a,0000000000000000000000000000000000000000..a1901cb56759b805ca1ac8f50ebb23e9ce1f2749
mode 100644,000000..100644
--- /dev/null
@@@ -1,32 -1,0 +1,32 @@@
- <?xml version="1.0" encoding="utf-8"?>\r
\r
- <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">\r
-       <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b">\r
-               <Name>LUFA Library</Name>\r
-               <Author>Dean Camera</Author>\r
-               <Version>0</Version>\r
-               <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl>\r
-               <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description>\r
\r
-               <License>License.txt</License>\r
-               <Icon>LUFA_thumb.png</Icon>\r
-               <PreviewImage>LUFA.png</PreviewImage>\r
\r
-               <SupportedProducts>\r
-                       <IsolatedShell Version="7.0">AtmelStudio</IsolatedShell>\r
-               </SupportedProducts>\r
\r
-               <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/>\r
-               <Locale>1033</Locale>\r
\r
-               <AllUsers>false</AllUsers>\r
-       </Identifier>\r
\r
-       <References/>\r
\r
-       <Content>\r
-               <VsPackage>LUFA.pkgdef</VsPackage>\r
-               <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension>\r
-               <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension>\r
-       </Content>\r
- </Vsix>\r
++<?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>