diff options
Diffstat (limited to 'tmk_core/avr.mk')
| -rw-r--r-- | tmk_core/avr.mk | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index d0a1b86ca..a44e15700 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk | |||
| @@ -237,6 +237,15 @@ endef | |||
| 237 | bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | 237 | bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware |
| 238 | $(call EXEC_BOOTLOADHID) | 238 | $(call EXEC_BOOTLOADHID) |
| 239 | 239 | ||
| 240 | HID_BOOTLOADER_CLI ?= hid_bootloader_cli | ||
| 241 | |||
| 242 | define EXEC_HID_LUFA | ||
| 243 | $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex | ||
| 244 | endef | ||
| 245 | |||
| 246 | hid_bootloader: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | ||
| 247 | $(call EXEC_HID_LUFA) | ||
| 248 | |||
| 240 | # Convert hex to bin. | 249 | # Convert hex to bin. |
| 241 | bin: $(BUILD_DIR)/$(TARGET).hex | 250 | bin: $(BUILD_DIR)/$(TARGET).hex |
| 242 | ifeq ($(BOOTLOADER),lufa-ms) | 251 | ifeq ($(BOOTLOADER),lufa-ms) |
| @@ -300,19 +309,26 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf | |||
| 300 | @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof | 309 | @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof |
| 301 | $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof | 310 | $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof |
| 302 | 311 | ||
| 303 | bootloader: | 312 | ifeq ($(strip $(BOOTLOADER)), qmk-dfu) |
| 304 | ifneq ($(strip $(BOOTLOADER)), qmk-dfu) | 313 | QMK_BOOTLOADER_TYPE = DFU |
| 305 | $(error Please set BOOTLOADER = qmk-dfu first!) | 314 | else ifeq ($(strip $(BOOTLOADER)), qmk-hid) |
| 315 | QMK_BOOTLOADER_TYPE = HID | ||
| 306 | endif | 316 | endif |
| 307 | make -C lib/lufa/Bootloaders/DFU/ clean | 317 | |
| 308 | $(QMK_BIN) generate-dfu-header --quiet --keyboard $(KEYBOARD) --output lib/lufa/Bootloaders/DFU/Keyboard.h | 318 | bootloader: |
| 309 | $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) | 319 | ifeq ($(strip $(QMK_BOOTLOADER_TYPE)),) |
| 320 | $(error Please set BOOTLOADER to "qmk-dfu" or "qmk-hid" first!) | ||
| 321 | else | ||
| 322 | make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ clean | ||
| 323 | $(QMK_BIN) generate-dfu-header --quiet --keyboard $(KEYBOARD) --output lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Keyboard.h | ||
| 324 | $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) tmk_core/common/avr/bootloader_size.c 2> /dev/null | sed -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) | ||
| 310 | $(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0)) | 325 | $(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0)) |
| 311 | $(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0)) | 326 | $(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0)) |
| 312 | $(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0)) | 327 | $(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0)) |
| 313 | make -C lib/lufa/Bootloaders/DFU/ MCU=$(MCU) ARCH=$(ARCH) F_CPU=$(F_CPU) FLASH_SIZE_KB=$(FLASH_SIZE_KB) BOOT_SECTION_SIZE_KB=$(BOOT_SECTION_SIZE_KB) | 328 | make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ MCU=$(MCU) ARCH=$(ARCH) F_CPU=$(F_CPU) FLASH_SIZE_KB=$(FLASH_SIZE_KB) BOOT_SECTION_SIZE_KB=$(BOOT_SECTION_SIZE_KB) |
| 314 | printf "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex\n" | 329 | printf "Bootloader$(QMK_BOOTLOADER_TYPE).hex copied to $(TARGET)_bootloader.hex\n" |
| 315 | cp lib/lufa/Bootloaders/DFU/BootloaderDFU.hex $(TARGET)_bootloader.hex | 330 | cp lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Bootloader$(QMK_BOOTLOADER_TYPE).hex $(TARGET)_bootloader.hex |
| 331 | endif | ||
| 316 | 332 | ||
| 317 | production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware | 333 | production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware |
| 318 | @cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex | 334 | @cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex |
| @@ -333,6 +349,8 @@ else ifeq ($(strip $(BOOTLOADER)), USBasp) | |||
| 333 | $(call EXEC_USBASP) | 349 | $(call EXEC_USBASP) |
| 334 | else ifeq ($(strip $(BOOTLOADER)), bootloadHID) | 350 | else ifeq ($(strip $(BOOTLOADER)), bootloadHID) |
| 335 | $(call EXEC_BOOTLOADHID) | 351 | $(call EXEC_BOOTLOADHID) |
| 352 | else ifeq ($(strip $(BOOTLOADER)), qmk-hid) | ||
| 353 | $(call EXEC_HID_LUFA) | ||
| 336 | else | 354 | else |
| 337 | $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" | 355 | $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" |
| 338 | endif | 356 | endif |
