diff options
Diffstat (limited to 'tmk_core/avr.mk')
| -rw-r--r-- | tmk_core/avr.mk | 91 |
1 files changed, 51 insertions, 40 deletions
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 5bfd5a9b0..e5443418b 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk | |||
| @@ -89,11 +89,11 @@ DEBUG_HOST = localhost | |||
| 89 | #============================================================================ | 89 | #============================================================================ |
| 90 | # Autodetect teensy loader | 90 | # Autodetect teensy loader |
| 91 | ifndef TEENSY_LOADER_CLI | 91 | ifndef TEENSY_LOADER_CLI |
| 92 | ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) | 92 | ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) |
| 93 | TEENSY_LOADER_CLI ?= teensy-loader-cli | 93 | TEENSY_LOADER_CLI ?= teensy-loader-cli |
| 94 | else | 94 | else |
| 95 | TEENSY_LOADER_CLI ?= teensy_loader_cli | 95 | TEENSY_LOADER_CLI ?= teensy_loader_cli |
| 96 | endif | 96 | endif |
| 97 | endif | 97 | endif |
| 98 | 98 | ||
| 99 | # Generate a .qmk for the QMK-FF | 99 | # Generate a .qmk for the QMK-FF |
| @@ -124,8 +124,12 @@ qmk: $(BUILD_DIR)/$(TARGET).hex | |||
| 124 | program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size | 124 | program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size |
| 125 | $(PROGRAM_CMD) | 125 | $(PROGRAM_CMD) |
| 126 | 126 | ||
| 127 | teensy: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | 127 | define EXEC_TEENSY |
| 128 | $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex | 128 | $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex |
| 129 | endef | ||
| 130 | |||
| 131 | teensy: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | ||
| 132 | $(call EXEC_TEENSY) | ||
| 129 | 133 | ||
| 130 | BATCHISP ?= batchisp | 134 | BATCHISP ?= batchisp |
| 131 | 135 | ||
| @@ -137,18 +141,32 @@ flip: $(BUILD_DIR)/$(TARGET).hex check-size | |||
| 137 | DFU_PROGRAMMER ?= dfu-programmer | 141 | DFU_PROGRAMMER ?= dfu-programmer |
| 138 | GREP ?= grep | 142 | GREP ?= grep |
| 139 | 143 | ||
| 140 | dfu: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size | 144 | |
| 145 | define EXEC_DFU | ||
| 146 | if [ "$(1)" ]; then \ | ||
| 147 | echo "Flashing '$(1)' for EE_HANDS split keyboard support." ;\ | ||
| 148 | fi; \ | ||
| 141 | until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ | 149 | until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ |
| 142 | echo "Error: Bootloader not found. Trying again in 5s." ;\ | 150 | echo "Error: Bootloader not found. Trying again in 5s." ;\ |
| 143 | sleep 5 ;\ | 151 | sleep 5 ;\ |
| 144 | done | 152 | done; \ |
| 145 | if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ | 153 | if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ |
| 146 | $(DFU_PROGRAMMER) $(MCU) erase --force;\ | 154 | $(DFU_PROGRAMMER) $(MCU) erase --force; \ |
| 147 | else\ | 155 | if [ "$(1)" ]; then \ |
| 148 | $(DFU_PROGRAMMER) $(MCU) erase;\ | 156 | $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/$(1);\ |
| 149 | fi | 157 | fi; \ |
| 150 | $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex | 158 | else \ |
| 159 | $(DFU_PROGRAMMER) $(MCU) erase; \ | ||
| 160 | if [ "$(1)" ]; then \ | ||
| 161 | $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/$(1);\ | ||
| 162 | fi; \ | ||
| 163 | fi; \ | ||
| 164 | $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex;\ | ||
| 151 | $(DFU_PROGRAMMER) $(MCU) reset | 165 | $(DFU_PROGRAMMER) $(MCU) reset |
| 166 | endef | ||
| 167 | |||
| 168 | dfu: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size | ||
| 169 | $(call EXEC_DFU) | ||
| 152 | 170 | ||
| 153 | dfu-start: | 171 | dfu-start: |
| 154 | $(DFU_PROGRAMMER) $(MCU) reset | 172 | $(DFU_PROGRAMMER) $(MCU) reset |
| @@ -170,34 +188,10 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep | |||
| 170 | $(DFU_PROGRAMMER) $(MCU) reset | 188 | $(DFU_PROGRAMMER) $(MCU) reset |
| 171 | 189 | ||
| 172 | dfu-split-left: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size | 190 | dfu-split-left: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size |
| 173 | until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ | 191 | $(call EXEC_DFU,eeprom-lefthand.eep) |
| 174 | echo "Error: Bootloader not found. Trying again in 5s." ;\ | ||
| 175 | sleep 5 ;\ | ||
| 176 | done | ||
| 177 | if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ | ||
| 178 | $(DFU_PROGRAMMER) $(MCU) erase --force;\ | ||
| 179 | $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\ | ||
| 180 | else\ | ||
| 181 | $(DFU_PROGRAMMER) $(MCU) erase;\ | ||
| 182 | $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\ | ||
| 183 | fi | ||
| 184 | $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex | ||
| 185 | $(DFU_PROGRAMMER) $(MCU) reset | ||
| 186 | 192 | ||
| 187 | dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size | 193 | dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size |
| 188 | until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ | 194 | $(call EXEC_DFU,eeprom-righthand.eep) |
| 189 | echo "Error: Bootloader not found. Trying again in 5s." ;\ | ||
| 190 | sleep 5 ;\ | ||
| 191 | done | ||
| 192 | if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ | ||
| 193 | $(DFU_PROGRAMMER) $(MCU) erase --force;\ | ||
| 194 | $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-righthand.eep;\ | ||
| 195 | else\ | ||
| 196 | $(DFU_PROGRAMMER) $(MCU) erase;\ | ||
| 197 | $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-righthand.eep;\ | ||
| 198 | fi | ||
| 199 | $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex | ||
| 200 | $(DFU_PROGRAMMER) $(MCU) reset | ||
| 201 | 195 | ||
| 202 | define EXEC_AVRDUDE | 196 | define EXEC_AVRDUDE |
| 203 | USB= ;\ | 197 | USB= ;\ |
| @@ -245,8 +239,12 @@ avrdude-split-left: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | |||
| 245 | avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | 239 | avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware |
| 246 | $(call EXEC_AVRDUDE,eeprom-righthand.eep) | 240 | $(call EXEC_AVRDUDE,eeprom-righthand.eep) |
| 247 | 241 | ||
| 248 | usbasp: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | 242 | define EXEC_USBASP |
| 249 | avrdude -p $(MCU) -c usbasp -U flash:w:$(BUILD_DIR)/$(TARGET).hex | 243 | avrdude -p $(MCU) -c usbasp -U flash:w:$(BUILD_DIR)/$(TARGET).hex |
| 244 | endef | ||
| 245 | |||
| 246 | usbasp: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | ||
| 247 | $(call EXEC_USBASP) | ||
| 250 | 248 | ||
| 251 | 249 | ||
| 252 | # Convert hex to bin. | 250 | # Convert hex to bin. |
| @@ -323,3 +321,16 @@ production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware | |||
| 323 | @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex | 321 | @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex |
| 324 | echo "File sizes:" | 322 | echo "File sizes:" |
| 325 | $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex | 323 | $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex |
| 324 | |||
| 325 | flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware | ||
| 326 | ifeq ($(strip $(BOOTLOADER)), caterina) | ||
| 327 | $(call EXEC_AVRDUDE) | ||
| 328 | else ifeq ($(strip $(BOOTLOADER)), halfkay) | ||
| 329 | $(call EXEC_TEENSY) | ||
| 330 | else ifeq (dfu,$(findstring dfu,$(BOOTLOADER))) | ||
| 331 | $(call EXEC_DFU) | ||
| 332 | else ifeq ($(strip $(BOOTLOADER)), USBasp) | ||
| 333 | $(call EXEC_USBASP) | ||
| 334 | else | ||
| 335 | $(PRINT_OK); $(SILENT) || printf "&(MSG_FLASH_BOOTLOADER)" | ||
| 336 | endif | ||
