diff options
| -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 | ||||
| -rw-r--r-- | lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt | 90 | ||||
| -rw-r--r-- | lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest | 64 |
6 files changed, 407 insertions, 407 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 |
diff --git a/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/lib/lufa/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt index e7e230166..e7b57ab64 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 @@ | |||
| 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 | <!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> | 9 | <!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> |
| 10 | 10 | ||
| 11 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | 11 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> |
| 12 | 12 | ||
| 13 | <xsl:import href="../Docbook/mshelp/docbook.xsl"/> | 13 | <xsl:import href="../Docbook/mshelp/docbook.xsl"/> |
| 14 | 14 | ||
| 15 | <xsl:output method="xml" indent="no"/> | 15 | <xsl:output method="xml" indent="no"/> |
| 16 | 16 | ||
| 17 | <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> | 17 | <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> |
| 18 | <span class="hl-keyword" style="color: #0079C1"> | 18 | <span class="hl-keyword" style="color: #0079C1"> |
| 19 | <xsl:apply-templates/> | 19 | <xsl:apply-templates/> |
| 20 | </span> | 20 | </span> |
| 21 | </xsl:template> | 21 | </xsl:template> |
| 22 | 22 | ||
| 23 | <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> | 23 | <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> |
| 24 | <span class="hl-string" style="color: #800000"> | 24 | <span class="hl-string" style="color: #800000"> |
| 25 | <xsl:apply-templates/> | 25 | <xsl:apply-templates/> |
| 26 | </span> | 26 | </span> |
| 27 | </xsl:template> | 27 | </xsl:template> |
| 28 | 28 | ||
| 29 | <xsl:template match="emphasis[@role = 'comment']"> | 29 | <xsl:template match="emphasis[@role = 'comment']"> |
| 30 | <em class="hl-comment" style="color: #008000"> | 30 | <em class="hl-comment" style="color: #008000"> |
| 31 | <xsl:apply-templates/> | 31 | <xsl:apply-templates/> |
| 32 | </em> | 32 | </em> |
| 33 | </xsl:template> | 33 | </xsl:template> |
| 34 | 34 | ||
| 35 | <xsl:template match="emphasis[@role = 'preprocessor']"> | 35 | <xsl:template match="emphasis[@role = 'preprocessor']"> |
| 36 | <span class="hl-preprocessor" style="color: #A000A0"> | 36 | <span class="hl-preprocessor" style="color: #A000A0"> |
| 37 | <xsl:apply-templates/> | 37 | <xsl:apply-templates/> |
| 38 | </span> | 38 | </span> |
| 39 | </xsl:template> | 39 | </xsl:template> |
| 40 | 40 | ||
| 41 | <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> | 41 | <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> |
| 42 | <xsl:apply-templates /> | 42 | <xsl:apply-templates /> |
| 43 | </xsl:template> | 43 | </xsl:template> |
| 44 | 44 | ||
| 45 | </xsl:stylesheet> | 45 | </xsl:stylesheet> |
diff --git a/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest index f155618b7..a1901cb56 100644 --- a/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest +++ b/lib/lufa/LUFA/StudioIntegration/VSIX/extension.vsixmanifest | |||
| @@ -1,32 +1,32 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | 2 | ||
| 3 | <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"> | 3 | <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"> |
| 4 | <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> | 4 | <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> |
| 5 | <Name>LUFA Library</Name> | 5 | <Name>LUFA Library</Name> |
| 6 | <Author>Dean Camera</Author> | 6 | <Author>Dean Camera</Author> |
| 7 | <Version>0</Version> | 7 | <Version>0</Version> |
| 8 | <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> | 8 | <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> |
| 9 | <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> | 9 | <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> |
| 10 | 10 | ||
| 11 | <License>License.txt</License> | 11 | <License>License.txt</License> |
| 12 | <Icon>LUFA_thumb.png</Icon> | 12 | <Icon>LUFA_thumb.png</Icon> |
| 13 | <PreviewImage>LUFA.png</PreviewImage> | 13 | <PreviewImage>LUFA.png</PreviewImage> |
| 14 | 14 | ||
| 15 | <SupportedProducts> | 15 | <SupportedProducts> |
| 16 | <IsolatedShell Version="7.0">AtmelStudio</IsolatedShell> | 16 | <IsolatedShell Version="7.0">AtmelStudio</IsolatedShell> |
| 17 | </SupportedProducts> | 17 | </SupportedProducts> |
| 18 | 18 | ||
| 19 | <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> | 19 | <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> |
| 20 | <Locale>1033</Locale> | 20 | <Locale>1033</Locale> |
| 21 | 21 | ||
| 22 | <AllUsers>false</AllUsers> | 22 | <AllUsers>false</AllUsers> |
| 23 | </Identifier> | 23 | </Identifier> |
| 24 | 24 | ||
| 25 | <References/> | 25 | <References/> |
| 26 | 26 | ||
| 27 | <Content> | 27 | <Content> |
| 28 | <VsPackage>LUFA.pkgdef</VsPackage> | 28 | <VsPackage>LUFA.pkgdef</VsPackage> |
| 29 | <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> | 29 | <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> |
| 30 | <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> | 30 | <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> |
| 31 | </Content> | 31 | </Content> |
| 32 | </Vsix> | 32 | </Vsix> |
