diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2017-07-09 21:26:54 -0400 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2017-07-09 21:26:54 -0400 |
| commit | 62214986013ee6596afa55023f7a95a8527d910f (patch) | |
| tree | 1ac0e8e072c3fd94dc89fa61940f1b3cae91e05a /lib/lufa/Bootloaders | |
| parent | fcd08b8c7d66cf4cf5724b7b2468d3569488114f (diff) | |
| parent | 8858438a770c1c982f33b296447ca77176c751f7 (diff) | |
| download | qmk_firmware-62214986013ee6596afa55023f7a95a8527d910f.tar.gz qmk_firmware-62214986013ee6596afa55023f7a95a8527d910f.zip | |
Merge commit '8858438a770c1c982f33b296447ca77176c751f7'
Diffstat (limited to 'lib/lufa/Bootloaders')
| -rw-r--r-- | lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S | 204 | ||||
| -rw-r--r-- | lib/lufa/Bootloaders/MassStorage/makefile | 150 | ||||
| -rw-r--r-- | lib/lufa/Bootloaders/Printer/BootloaderAPITable.S | 182 | ||||
| -rw-r--r-- | lib/lufa/Bootloaders/Printer/makefile | 124 |
4 files changed, 330 insertions, 330 deletions
diff --git a/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S b/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S index 30165700d..44eb15ea9 100644 --- a/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S +++ b/lib/lufa/Bootloaders/MassStorage/BootloaderAPITable.S | |||
| @@ -1,102 +1,102 @@ | |||
| 1 | /* | 1 | /* |
| 2 | LUFA Library | 2 | LUFA Library |
| 3 | Copyright (C) Dean Camera, 2017. | 3 | Copyright (C) Dean Camera, 2017. |
| 4 | 4 | ||
| 5 | dean [at] fourwalledcubicle [dot] com | 5 | dean [at] fourwalledcubicle [dot] com |
| 6 | www.lufa-lib.org | 6 | www.lufa-lib.org |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* | 9 | /* |
| 10 | Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | 10 | Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) |
| 11 | 11 | ||
| 12 | Permission to use, copy, modify, distribute, and sell this | 12 | Permission to use, copy, modify, distribute, and sell this |
| 13 | software and its documentation for any purpose is hereby granted | 13 | software and its documentation for any purpose is hereby granted |
| 14 | without fee, provided that the above copyright notice appear in | 14 | without fee, provided that the above copyright notice appear in |
| 15 | all copies and that both that the copyright notice and this | 15 | all copies and that both that the copyright notice and this |
| 16 | permission notice and warranty disclaimer appear in supporting | 16 | permission notice and warranty disclaimer appear in supporting |
| 17 | documentation, and that the name of the author not be used in | 17 | documentation, and that the name of the author not be used in |
| 18 | advertising or publicity pertaining to distribution of the | 18 | advertising or publicity pertaining to distribution of the |
| 19 | software without specific, written prior permission. | 19 | software without specific, written prior permission. |
| 20 | 20 | ||
| 21 | The author disclaims all warranties with regard to this | 21 | The author disclaims all warranties with regard to this |
| 22 | software, including all implied warranties of merchantability | 22 | software, including all implied warranties of merchantability |
| 23 | and fitness. In no event shall the author be liable for any | 23 | and fitness. In no event shall the author be liable for any |
| 24 | special, indirect or consequential damages or any damages | 24 | special, indirect or consequential damages or any damages |
| 25 | whatsoever resulting from loss of use, data or profits, whether | 25 | whatsoever resulting from loss of use, data or profits, whether |
| 26 | in an action of contract, negligence or other tortious action, | 26 | in an action of contract, negligence or other tortious action, |
| 27 | arising out of or in connection with the use or performance of | 27 | arising out of or in connection with the use or performance of |
| 28 | this software. | 28 | this software. |
| 29 | */ | 29 | */ |
| 30 | 30 | ||
| 31 | #if AUX_BOOT_SECTION_SIZE > 0 | 31 | #if AUX_BOOT_SECTION_SIZE > 0 |
| 32 | #warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation). | 32 | #warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation). |
| 33 | 33 | ||
| 34 | ; Trampoline to jump over the AUX bootloader section to the start of the bootloader, | 34 | ; Trampoline to jump over the AUX bootloader section to the start of the bootloader, |
| 35 | ; on devices where an AUX bootloader section is used. | 35 | ; on devices where an AUX bootloader section is used. |
| 36 | .section .boot_aux_trampoline, "ax" | 36 | .section .boot_aux_trampoline, "ax" |
| 37 | .global Boot_AUX_Trampoline | 37 | .global Boot_AUX_Trampoline |
| 38 | Boot_AUX_Trampoline: | 38 | Boot_AUX_Trampoline: |
| 39 | jmp BOOT_START_ADDR | 39 | jmp BOOT_START_ADDR |
| 40 | #endif | 40 | #endif |
| 41 | 41 | ||
| 42 | ; Trampolines to actual API implementations if the target address is outside the | 42 | ; Trampolines to actual API implementations if the target address is outside the |
| 43 | ; range of a rjmp instruction (can happen with large bootloader sections) | 43 | ; range of a rjmp instruction (can happen with large bootloader sections) |
| 44 | .section .apitable_trampolines, "ax" | 44 | .section .apitable_trampolines, "ax" |
| 45 | .global BootloaderAPI_Trampolines | 45 | .global BootloaderAPI_Trampolines |
| 46 | BootloaderAPI_Trampolines: | 46 | BootloaderAPI_Trampolines: |
| 47 | 47 | ||
| 48 | BootloaderAPI_ErasePage_Trampoline: | 48 | BootloaderAPI_ErasePage_Trampoline: |
| 49 | jmp BootloaderAPI_ErasePage | 49 | jmp BootloaderAPI_ErasePage |
| 50 | BootloaderAPI_WritePage_Trampoline: | 50 | BootloaderAPI_WritePage_Trampoline: |
| 51 | jmp BootloaderAPI_WritePage | 51 | jmp BootloaderAPI_WritePage |
| 52 | BootloaderAPI_FillWord_Trampoline: | 52 | BootloaderAPI_FillWord_Trampoline: |
| 53 | jmp BootloaderAPI_FillWord | 53 | jmp BootloaderAPI_FillWord |
| 54 | BootloaderAPI_ReadSignature_Trampoline: | 54 | BootloaderAPI_ReadSignature_Trampoline: |
| 55 | jmp BootloaderAPI_ReadSignature | 55 | jmp BootloaderAPI_ReadSignature |
| 56 | BootloaderAPI_ReadFuse_Trampoline: | 56 | BootloaderAPI_ReadFuse_Trampoline: |
| 57 | jmp BootloaderAPI_ReadFuse | 57 | jmp BootloaderAPI_ReadFuse |
| 58 | BootloaderAPI_ReadLock_Trampoline: | 58 | BootloaderAPI_ReadLock_Trampoline: |
| 59 | jmp BootloaderAPI_ReadLock | 59 | jmp BootloaderAPI_ReadLock |
| 60 | BootloaderAPI_WriteLock_Trampoline: | 60 | BootloaderAPI_WriteLock_Trampoline: |
| 61 | jmp BootloaderAPI_WriteLock | 61 | jmp BootloaderAPI_WriteLock |
| 62 | BootloaderAPI_UNUSED1: | 62 | BootloaderAPI_UNUSED1: |
| 63 | ret | 63 | ret |
| 64 | BootloaderAPI_UNUSED2: | 64 | BootloaderAPI_UNUSED2: |
| 65 | ret | 65 | ret |
| 66 | BootloaderAPI_UNUSED3: | 66 | BootloaderAPI_UNUSED3: |
| 67 | ret | 67 | ret |
| 68 | BootloaderAPI_UNUSED4: | 68 | BootloaderAPI_UNUSED4: |
| 69 | ret | 69 | ret |
| 70 | BootloaderAPI_UNUSED5: | 70 | BootloaderAPI_UNUSED5: |
| 71 | ret | 71 | ret |
| 72 | 72 | ||
| 73 | 73 | ||
| 74 | 74 | ||
| 75 | ; API function jump table | 75 | ; API function jump table |
| 76 | .section .apitable_jumptable, "ax" | 76 | .section .apitable_jumptable, "ax" |
| 77 | .global BootloaderAPI_JumpTable | 77 | .global BootloaderAPI_JumpTable |
| 78 | BootloaderAPI_JumpTable: | 78 | BootloaderAPI_JumpTable: |
| 79 | 79 | ||
| 80 | rjmp BootloaderAPI_ErasePage_Trampoline | 80 | rjmp BootloaderAPI_ErasePage_Trampoline |
| 81 | rjmp BootloaderAPI_WritePage_Trampoline | 81 | rjmp BootloaderAPI_WritePage_Trampoline |
| 82 | rjmp BootloaderAPI_FillWord_Trampoline | 82 | rjmp BootloaderAPI_FillWord_Trampoline |
| 83 | rjmp BootloaderAPI_ReadSignature_Trampoline | 83 | rjmp BootloaderAPI_ReadSignature_Trampoline |
| 84 | rjmp BootloaderAPI_ReadFuse_Trampoline | 84 | rjmp BootloaderAPI_ReadFuse_Trampoline |
| 85 | rjmp BootloaderAPI_ReadLock_Trampoline | 85 | rjmp BootloaderAPI_ReadLock_Trampoline |
| 86 | rjmp BootloaderAPI_WriteLock_Trampoline | 86 | rjmp BootloaderAPI_WriteLock_Trampoline |
| 87 | rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 | 87 | rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 |
| 88 | rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 | 88 | rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 |
| 89 | rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 | 89 | rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 |
| 90 | rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 | 90 | rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 |
| 91 | rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 | 91 | rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 |
| 92 | 92 | ||
| 93 | 93 | ||
| 94 | 94 | ||
| 95 | ; Bootloader table signatures and information | 95 | ; Bootloader table signatures and information |
| 96 | .section .apitable_signatures, "ax" | 96 | .section .apitable_signatures, "ax" |
| 97 | .global BootloaderAPI_Signatures | 97 | .global BootloaderAPI_Signatures |
| 98 | BootloaderAPI_Signatures: | 98 | BootloaderAPI_Signatures: |
| 99 | 99 | ||
| 100 | .long BOOT_START_ADDR ; Start address of the bootloader | 100 | .long BOOT_START_ADDR ; Start address of the bootloader |
| 101 | .word 0xDF30 ; Signature for the MS class bootloader, V1 | 101 | .word 0xDF30 ; Signature for the MS class bootloader, V1 |
| 102 | .word 0xDCFB ; Signature for a LUFA class bootloader | 102 | .word 0xDCFB ; Signature for a LUFA class bootloader |
diff --git a/lib/lufa/Bootloaders/MassStorage/makefile b/lib/lufa/Bootloaders/MassStorage/makefile index 7f0ec82a7..f3948e754 100644 --- a/lib/lufa/Bootloaders/MassStorage/makefile +++ b/lib/lufa/Bootloaders/MassStorage/makefile | |||
| @@ -1,75 +1,75 @@ | |||
| 1 | # | 1 | # |
| 2 | # LUFA Library | 2 | # LUFA Library |
| 3 | # Copyright (C) Dean Camera, 2017. | 3 | # Copyright (C) Dean Camera, 2017. |
| 4 | # | 4 | # |
| 5 | # dean [at] fourwalledcubicle [dot] com | 5 | # dean [at] fourwalledcubicle [dot] com |
| 6 | # www.lufa-lib.org | 6 | # www.lufa-lib.org |
| 7 | # | 7 | # |
| 8 | # -------------------------------------- | 8 | # -------------------------------------- |
| 9 | # LUFA Project Makefile. | 9 | # LUFA Project Makefile. |
| 10 | # -------------------------------------- | 10 | # -------------------------------------- |
| 11 | 11 | ||
| 12 | # Run "make help" for target help. | 12 | # Run "make help" for target help. |
| 13 | 13 | ||
| 14 | MCU = at90usb1287 | 14 | MCU = at90usb1287 |
| 15 | ARCH = AVR8 | 15 | ARCH = AVR8 |
| 16 | BOARD = USBKEY | 16 | BOARD = USBKEY |
| 17 | F_CPU = 8000000 | 17 | F_CPU = 8000000 |
| 18 | F_USB = $(F_CPU) | 18 | F_USB = $(F_CPU) |
| 19 | OPTIMIZATION = s | 19 | OPTIMIZATION = s |
| 20 | TARGET = BootloaderMassStorage | 20 | TARGET = BootloaderMassStorage |
| 21 | SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) | 21 | SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) |
| 22 | LUFA_PATH = ../../LUFA | 22 | LUFA_PATH = ../../LUFA |
| 23 | CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) | 23 | CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) |
| 24 | LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) | 24 | LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) |
| 25 | 25 | ||
| 26 | # Flash size and bootloader section sizes of the target, in KB. These must | 26 | # Flash size and bootloader section sizes of the target, in KB. These must |
| 27 | # match the target's total FLASH size and the bootloader size set in the | 27 | # match the target's total FLASH size and the bootloader size set in the |
| 28 | # device's fuses. | 28 | # device's fuses. |
| 29 | FLASH_SIZE_KB = 128 | 29 | FLASH_SIZE_KB = 128 |
| 30 | BOOT_SECTION_SIZE_KB = 8 | 30 | BOOT_SECTION_SIZE_KB = 8 |
| 31 | 31 | ||
| 32 | # Bootloader address calculation formulas | 32 | # Bootloader address calculation formulas |
| 33 | # Do not modify these macros, but rather modify the dependent values above. | 33 | # Do not modify these macros, but rather modify the dependent values above. |
| 34 | CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) | 34 | CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) |
| 35 | BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) | 35 | BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) |
| 36 | BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) | 36 | BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) |
| 37 | 37 | ||
| 38 | # Bootloader linker section flags for relocating the API table sections to | 38 | # Bootloader linker section flags for relocating the API table sections to |
| 39 | # known FLASH addresses - these should not normally be user-edited. | 39 | # known FLASH addresses - these should not normally be user-edited. |
| 40 | BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) | 40 | BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) |
| 41 | BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) | 41 | BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) |
| 42 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) | 42 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) |
| 43 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) | 43 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) |
| 44 | 44 | ||
| 45 | # Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the | 45 | # Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the |
| 46 | # bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum | 46 | # bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum |
| 47 | # bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices. | 47 | # bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices. |
| 48 | ifeq ($(BOOT_SECTION_SIZE_KB),8) | 48 | ifeq ($(BOOT_SECTION_SIZE_KB),8) |
| 49 | CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0 | 49 | CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0 |
| 50 | else | 50 | else |
| 51 | AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB)) | 51 | AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB)) |
| 52 | 52 | ||
| 53 | CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)' | 53 | CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)' |
| 54 | LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16)) | 54 | LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16)) |
| 55 | LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024) | 55 | LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024) |
| 56 | endif | 56 | endif |
| 57 | 57 | ||
| 58 | # Default target | 58 | # Default target |
| 59 | all: | 59 | all: |
| 60 | 60 | ||
| 61 | # Include LUFA-specific DMBS extension modules | 61 | # Include LUFA-specific DMBS extension modules |
| 62 | DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA | 62 | DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA |
| 63 | include $(DMBS_LUFA_PATH)/lufa-sources.mk | 63 | include $(DMBS_LUFA_PATH)/lufa-sources.mk |
| 64 | include $(DMBS_LUFA_PATH)/lufa-gcc.mk | 64 | include $(DMBS_LUFA_PATH)/lufa-gcc.mk |
| 65 | 65 | ||
| 66 | # Include common DMBS build system modules | 66 | # Include common DMBS build system modules |
| 67 | DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS | 67 | DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS |
| 68 | include $(DMBS_PATH)/core.mk | 68 | include $(DMBS_PATH)/core.mk |
| 69 | include $(DMBS_PATH)/cppcheck.mk | 69 | include $(DMBS_PATH)/cppcheck.mk |
| 70 | include $(DMBS_PATH)/doxygen.mk | 70 | include $(DMBS_PATH)/doxygen.mk |
| 71 | include $(DMBS_PATH)/dfu.mk | 71 | include $(DMBS_PATH)/dfu.mk |
| 72 | include $(DMBS_PATH)/gcc.mk | 72 | include $(DMBS_PATH)/gcc.mk |
| 73 | include $(DMBS_PATH)/hid.mk | 73 | include $(DMBS_PATH)/hid.mk |
| 74 | include $(DMBS_PATH)/avrdude.mk | 74 | include $(DMBS_PATH)/avrdude.mk |
| 75 | include $(DMBS_PATH)/atprogram.mk | 75 | include $(DMBS_PATH)/atprogram.mk |
diff --git a/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S b/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S index 76f37bf49..d8358c31c 100644 --- a/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S +++ b/lib/lufa/Bootloaders/Printer/BootloaderAPITable.S | |||
| @@ -1,91 +1,91 @@ | |||
| 1 | /* | 1 | /* |
| 2 | LUFA Library | 2 | LUFA Library |
| 3 | Copyright (C) Dean Camera, 2017. | 3 | Copyright (C) Dean Camera, 2017. |
| 4 | 4 | ||
| 5 | dean [at] fourwalledcubicle [dot] com | 5 | dean [at] fourwalledcubicle [dot] com |
| 6 | www.lufa-lib.org | 6 | www.lufa-lib.org |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* | 9 | /* |
| 10 | Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) | 10 | Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) |
| 11 | 11 | ||
| 12 | Permission to use, copy, modify, distribute, and sell this | 12 | Permission to use, copy, modify, distribute, and sell this |
| 13 | software and its documentation for any purpose is hereby granted | 13 | software and its documentation for any purpose is hereby granted |
| 14 | without fee, provided that the above copyright notice appear in | 14 | without fee, provided that the above copyright notice appear in |
| 15 | all copies and that both that the copyright notice and this | 15 | all copies and that both that the copyright notice and this |
| 16 | permission notice and warranty disclaimer appear in supporting | 16 | permission notice and warranty disclaimer appear in supporting |
| 17 | documentation, and that the name of the author not be used in | 17 | documentation, and that the name of the author not be used in |
| 18 | advertising or publicity pertaining to distribution of the | 18 | advertising or publicity pertaining to distribution of the |
| 19 | software without specific, written prior permission. | 19 | software without specific, written prior permission. |
| 20 | 20 | ||
| 21 | The author disclaims all warranties with regard to this | 21 | The author disclaims all warranties with regard to this |
| 22 | software, including all implied warranties of merchantability | 22 | software, including all implied warranties of merchantability |
| 23 | and fitness. In no event shall the author be liable for any | 23 | and fitness. In no event shall the author be liable for any |
| 24 | special, indirect or consequential damages or any damages | 24 | special, indirect or consequential damages or any damages |
| 25 | whatsoever resulting from loss of use, data or profits, whether | 25 | whatsoever resulting from loss of use, data or profits, whether |
| 26 | in an action of contract, negligence or other tortious action, | 26 | in an action of contract, negligence or other tortious action, |
| 27 | arising out of or in connection with the use or performance of | 27 | arising out of or in connection with the use or performance of |
| 28 | this software. | 28 | this software. |
| 29 | */ | 29 | */ |
| 30 | 30 | ||
| 31 | ; Trampolines to actual API implementations if the target address is outside the | 31 | ; Trampolines to actual API implementations if the target address is outside the |
| 32 | ; range of a rjmp instruction (can happen with large bootloader sections) | 32 | ; range of a rjmp instruction (can happen with large bootloader sections) |
| 33 | .section .apitable_trampolines, "ax" | 33 | .section .apitable_trampolines, "ax" |
| 34 | .global BootloaderAPI_Trampolines | 34 | .global BootloaderAPI_Trampolines |
| 35 | BootloaderAPI_Trampolines: | 35 | BootloaderAPI_Trampolines: |
| 36 | 36 | ||
| 37 | BootloaderAPI_ErasePage_Trampoline: | 37 | BootloaderAPI_ErasePage_Trampoline: |
| 38 | jmp BootloaderAPI_ErasePage | 38 | jmp BootloaderAPI_ErasePage |
| 39 | BootloaderAPI_WritePage_Trampoline: | 39 | BootloaderAPI_WritePage_Trampoline: |
| 40 | jmp BootloaderAPI_WritePage | 40 | jmp BootloaderAPI_WritePage |
| 41 | BootloaderAPI_FillWord_Trampoline: | 41 | BootloaderAPI_FillWord_Trampoline: |
| 42 | jmp BootloaderAPI_FillWord | 42 | jmp BootloaderAPI_FillWord |
| 43 | BootloaderAPI_ReadSignature_Trampoline: | 43 | BootloaderAPI_ReadSignature_Trampoline: |
| 44 | jmp BootloaderAPI_ReadSignature | 44 | jmp BootloaderAPI_ReadSignature |
| 45 | BootloaderAPI_ReadFuse_Trampoline: | 45 | BootloaderAPI_ReadFuse_Trampoline: |
| 46 | jmp BootloaderAPI_ReadFuse | 46 | jmp BootloaderAPI_ReadFuse |
| 47 | BootloaderAPI_ReadLock_Trampoline: | 47 | BootloaderAPI_ReadLock_Trampoline: |
| 48 | jmp BootloaderAPI_ReadLock | 48 | jmp BootloaderAPI_ReadLock |
| 49 | BootloaderAPI_WriteLock_Trampoline: | 49 | BootloaderAPI_WriteLock_Trampoline: |
| 50 | jmp BootloaderAPI_WriteLock | 50 | jmp BootloaderAPI_WriteLock |
| 51 | BootloaderAPI_UNUSED1: | 51 | BootloaderAPI_UNUSED1: |
| 52 | ret | 52 | ret |
| 53 | BootloaderAPI_UNUSED2: | 53 | BootloaderAPI_UNUSED2: |
| 54 | ret | 54 | ret |
| 55 | BootloaderAPI_UNUSED3: | 55 | BootloaderAPI_UNUSED3: |
| 56 | ret | 56 | ret |
| 57 | BootloaderAPI_UNUSED4: | 57 | BootloaderAPI_UNUSED4: |
| 58 | ret | 58 | ret |
| 59 | BootloaderAPI_UNUSED5: | 59 | BootloaderAPI_UNUSED5: |
| 60 | ret | 60 | ret |
| 61 | 61 | ||
| 62 | 62 | ||
| 63 | 63 | ||
| 64 | ; API function jump table | 64 | ; API function jump table |
| 65 | .section .apitable_jumptable, "ax" | 65 | .section .apitable_jumptable, "ax" |
| 66 | .global BootloaderAPI_JumpTable | 66 | .global BootloaderAPI_JumpTable |
| 67 | BootloaderAPI_JumpTable: | 67 | BootloaderAPI_JumpTable: |
| 68 | 68 | ||
| 69 | rjmp BootloaderAPI_ErasePage_Trampoline | 69 | rjmp BootloaderAPI_ErasePage_Trampoline |
| 70 | rjmp BootloaderAPI_WritePage_Trampoline | 70 | rjmp BootloaderAPI_WritePage_Trampoline |
| 71 | rjmp BootloaderAPI_FillWord_Trampoline | 71 | rjmp BootloaderAPI_FillWord_Trampoline |
| 72 | rjmp BootloaderAPI_ReadSignature_Trampoline | 72 | rjmp BootloaderAPI_ReadSignature_Trampoline |
| 73 | rjmp BootloaderAPI_ReadFuse_Trampoline | 73 | rjmp BootloaderAPI_ReadFuse_Trampoline |
| 74 | rjmp BootloaderAPI_ReadLock_Trampoline | 74 | rjmp BootloaderAPI_ReadLock_Trampoline |
| 75 | rjmp BootloaderAPI_WriteLock_Trampoline | 75 | rjmp BootloaderAPI_WriteLock_Trampoline |
| 76 | rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 | 76 | rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 |
| 77 | rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 | 77 | rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 |
| 78 | rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 | 78 | rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 |
| 79 | rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 | 79 | rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 |
| 80 | rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 | 80 | rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 |
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | 83 | ||
| 84 | ; Bootloader table signatures and information | 84 | ; Bootloader table signatures and information |
| 85 | .section .apitable_signatures, "ax" | 85 | .section .apitable_signatures, "ax" |
| 86 | .global BootloaderAPI_Signatures | 86 | .global BootloaderAPI_Signatures |
| 87 | BootloaderAPI_Signatures: | 87 | BootloaderAPI_Signatures: |
| 88 | 88 | ||
| 89 | .long BOOT_START_ADDR ; Start address of the bootloader | 89 | .long BOOT_START_ADDR ; Start address of the bootloader |
| 90 | .word 0xDF20 ; Signature for the Printer class bootloader | 90 | .word 0xDF20 ; Signature for the Printer class bootloader |
| 91 | .word 0xDCFB ; Signature for a LUFA class bootloader | 91 | .word 0xDCFB ; Signature for a LUFA class bootloader |
diff --git a/lib/lufa/Bootloaders/Printer/makefile b/lib/lufa/Bootloaders/Printer/makefile index 2c8582ca2..1de35bba0 100644 --- a/lib/lufa/Bootloaders/Printer/makefile +++ b/lib/lufa/Bootloaders/Printer/makefile | |||
| @@ -1,62 +1,62 @@ | |||
| 1 | # | 1 | # |
| 2 | # LUFA Library | 2 | # LUFA Library |
| 3 | # Copyright (C) Dean Camera, 2017. | 3 | # Copyright (C) Dean Camera, 2017. |
| 4 | # | 4 | # |
| 5 | # dean [at] fourwalledcubicle [dot] com | 5 | # dean [at] fourwalledcubicle [dot] com |
| 6 | # www.lufa-lib.org | 6 | # www.lufa-lib.org |
| 7 | # | 7 | # |
| 8 | # -------------------------------------- | 8 | # -------------------------------------- |
| 9 | # LUFA Project Makefile. | 9 | # LUFA Project Makefile. |
| 10 | # -------------------------------------- | 10 | # -------------------------------------- |
| 11 | 11 | ||
| 12 | # Run "make help" for target help. | 12 | # Run "make help" for target help. |
| 13 | 13 | ||
| 14 | MCU = at90usb1287 | 14 | MCU = at90usb1287 |
| 15 | ARCH = AVR8 | 15 | ARCH = AVR8 |
| 16 | BOARD = USBKEY | 16 | BOARD = USBKEY |
| 17 | F_CPU = 8000000 | 17 | F_CPU = 8000000 |
| 18 | F_USB = $(F_CPU) | 18 | F_USB = $(F_CPU) |
| 19 | OPTIMIZATION = s | 19 | OPTIMIZATION = s |
| 20 | TARGET = BootloaderPrinter | 20 | TARGET = BootloaderPrinter |
| 21 | SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) | 21 | SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) |
| 22 | LUFA_PATH = ../../LUFA | 22 | LUFA_PATH = ../../LUFA |
| 23 | CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) | 23 | CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) |
| 24 | LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) | 24 | LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) |
| 25 | 25 | ||
| 26 | # Flash size and bootloader section sizes of the target, in KB. These must | 26 | # Flash size and bootloader section sizes of the target, in KB. These must |
| 27 | # match the target's total FLASH size and the bootloader size set in the | 27 | # match the target's total FLASH size and the bootloader size set in the |
| 28 | # device's fuses. | 28 | # device's fuses. |
| 29 | FLASH_SIZE_KB = 128 | 29 | FLASH_SIZE_KB = 128 |
| 30 | BOOT_SECTION_SIZE_KB = 8 | 30 | BOOT_SECTION_SIZE_KB = 8 |
| 31 | 31 | ||
| 32 | # Bootloader address calculation formulas | 32 | # Bootloader address calculation formulas |
| 33 | # Do not modify these macros, but rather modify the dependent values above. | 33 | # Do not modify these macros, but rather modify the dependent values above. |
| 34 | CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) | 34 | CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) |
| 35 | BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) | 35 | BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) |
| 36 | BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) | 36 | BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) |
| 37 | 37 | ||
| 38 | # Bootloader linker section flags for relocating the API table sections to | 38 | # Bootloader linker section flags for relocating the API table sections to |
| 39 | # known FLASH addresses - these should not normally be user-edited. | 39 | # known FLASH addresses - these should not normally be user-edited. |
| 40 | BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) | 40 | BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) |
| 41 | BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) | 41 | BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) |
| 42 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) | 42 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) |
| 43 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) | 43 | BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) |
| 44 | 44 | ||
| 45 | # Default target | 45 | # Default target |
| 46 | all: | 46 | all: |
| 47 | 47 | ||
| 48 | # Include LUFA-specific DMBS extension modules | 48 | # Include LUFA-specific DMBS extension modules |
| 49 | DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA | 49 | DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA |
| 50 | include $(DMBS_LUFA_PATH)/lufa-sources.mk | 50 | include $(DMBS_LUFA_PATH)/lufa-sources.mk |
| 51 | include $(DMBS_LUFA_PATH)/lufa-gcc.mk | 51 | include $(DMBS_LUFA_PATH)/lufa-gcc.mk |
| 52 | 52 | ||
| 53 | # Include common DMBS build system modules | 53 | # Include common DMBS build system modules |
| 54 | DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS | 54 | DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS |
| 55 | include $(DMBS_PATH)/core.mk | 55 | include $(DMBS_PATH)/core.mk |
| 56 | include $(DMBS_PATH)/cppcheck.mk | 56 | include $(DMBS_PATH)/cppcheck.mk |
| 57 | include $(DMBS_PATH)/doxygen.mk | 57 | include $(DMBS_PATH)/doxygen.mk |
| 58 | include $(DMBS_PATH)/dfu.mk | 58 | include $(DMBS_PATH)/dfu.mk |
| 59 | include $(DMBS_PATH)/gcc.mk | 59 | include $(DMBS_PATH)/gcc.mk |
| 60 | include $(DMBS_PATH)/hid.mk | 60 | include $(DMBS_PATH)/hid.mk |
| 61 | include $(DMBS_PATH)/avrdude.mk | 61 | include $(DMBS_PATH)/avrdude.mk |
| 62 | include $(DMBS_PATH)/atprogram.mk | 62 | include $(DMBS_PATH)/atprogram.mk |
