diff options
Diffstat (limited to 'tmk_core')
-rw-r--r-- | tmk_core/avr.mk | 34 |
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 | |||
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 | $(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 | ||
298 | bootloader: | 307 | ifeq ($(strip $(BOOTLOADER)), qmk-dfu) |
299 | ifneq ($(strip $(BOOTLOADER)), qmk-dfu) | 308 | QMK_BOOTLOADER_TYPE = DFU |
300 | $(error Please set BOOTLOADER = qmk-dfu first!) | 309 | else ifeq ($(strip $(BOOTLOADER)), qmk-hid) |
310 | QMK_BOOTLOADER_TYPE = HID | ||
301 | endif | 311 | endif |
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 | 313 | bootloader: |
314 | ifeq ($(strip $(QMK_BOOTLOADER_TYPE)),) | ||
315 | $(error Please set BOOTLOADER to "qmk-dfu" or "qmk-hid" first!) | ||
316 | else | ||
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 |
326 | endif | ||
311 | 327 | ||
312 | production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware | 328 | production: $(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) |
329 | else ifeq ($(strip $(BOOTLOADER)), bootloadHID) | 345 | else ifeq ($(strip $(BOOTLOADER)), bootloadHID) |
330 | $(call EXEC_BOOTLOADHID) | 346 | $(call EXEC_BOOTLOADHID) |
347 | else ifeq ($(strip $(BOOTLOADER)), qmk-hid) | ||
348 | $(call EXEC_HID_LUFA) | ||
331 | else | 349 | else |
332 | $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" | 350 | $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" |
333 | endif | 351 | endif |