aboutsummaryrefslogtreecommitdiff
path: root/tmk_core
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/avr.mk34
1 files changed, 26 insertions, 8 deletions
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 2efde2212..d942e7ade 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -237,6 +237,15 @@ endef
237bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware 237bootloadHID: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
238 $(call EXEC_BOOTLOADHID) 238 $(call EXEC_BOOTLOADHID)
239 239
240HID_BOOTLOADER_CLI ?= hid_bootloader_cli
241
242define EXEC_HID_LUFA
243 $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
244endef
245
246hid_bootloader: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
247 $(call EXEC_HID_LUFA)
248
240# Convert hex to bin. 249# Convert hex to bin.
241bin: $(BUILD_DIR)/$(TARGET).hex 250bin: $(BUILD_DIR)/$(TARGET).hex
242 $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin 251 $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
@@ -295,19 +304,26 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf
295 @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof 304 @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof
296 $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof 305 $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof
297 306
298bootloader: 307ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
299ifneq ($(strip $(BOOTLOADER)), qmk-dfu) 308QMK_BOOTLOADER_TYPE = DFU
300 $(error Please set BOOTLOADER = qmk-dfu first!) 309else ifeq ($(strip $(BOOTLOADER)), qmk-hid)
310QMK_BOOTLOADER_TYPE = HID
301endif 311endif
302 make -C lib/lufa/Bootloaders/DFU/ clean 312
303 $(QMK_BIN) generate-dfu-header --quiet --keyboard $(KEYBOARD) --output lib/lufa/Bootloaders/DFU/Keyboard.h 313bootloader:
314ifeq ($(strip $(QMK_BOOTLOADER_TYPE)),)
315 $(error Please set BOOTLOADER to "qmk-dfu" or "qmk-hid" first!)
316else
317 make -C lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/ clean
318 $(QMK_BIN) generate-dfu-header --quiet --keyboard $(KEYBOARD) --output lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Keyboard.h
304 $(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)) 319 $(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))
305 $(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0)) 320 $(eval PROGRAM_SIZE_KB=$(shell n=`expr $(MAX_SIZE) / 1024` && echo $$(($$n)) || echo 0))
306 $(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0)) 321 $(eval BOOT_SECTION_SIZE_KB=$(shell n=`expr $(BOOTLOADER_SIZE) / 1024` && echo $$(($$n)) || echo 0))
307 $(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0)) 322 $(eval FLASH_SIZE_KB=$(shell n=`expr $(PROGRAM_SIZE_KB) + $(BOOT_SECTION_SIZE_KB)` && echo $$(($$n)) || echo 0))
308 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) 323 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)
309 printf "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex\n" 324 printf "Bootloader$(QMK_BOOTLOADER_TYPE).hex copied to $(TARGET)_bootloader.hex\n"
310 cp lib/lufa/Bootloaders/DFU/BootloaderDFU.hex $(TARGET)_bootloader.hex 325 cp lib/lufa/Bootloaders/$(QMK_BOOTLOADER_TYPE)/Bootloader$(QMK_BOOTLOADER_TYPE).hex $(TARGET)_bootloader.hex
326endif
311 327
312production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware 328production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware
313 @cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex 329 @cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex
@@ -328,6 +344,8 @@ else ifeq ($(strip $(BOOTLOADER)), USBasp)
328 $(call EXEC_USBASP) 344 $(call EXEC_USBASP)
329else ifeq ($(strip $(BOOTLOADER)), bootloadHID) 345else ifeq ($(strip $(BOOTLOADER)), bootloadHID)
330 $(call EXEC_BOOTLOADHID) 346 $(call EXEC_BOOTLOADHID)
347else ifeq ($(strip $(BOOTLOADER)), qmk-hid)
348 $(call EXEC_HID_LUFA)
331else 349else
332 $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" 350 $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)"
333endif 351endif