Add burn_bootloader
target
Code to burn fuses is moved from ispload target to this new target, so that fuses are burned only once when needed. Fix #85
This commit is contained in:
parent
7961a86286
commit
4fb3e089bb
2 changed files with 53 additions and 27 deletions
|
@ -8,6 +8,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
|
|||
- Don't append port details to avrdude for usbasp. See #123
|
||||
- Ignore commented lines while parsing boards.txt file. See #124
|
||||
- In ISP mode, read baudrate and programmer from boards.txt. See #125
|
||||
- Add `burn_bootloader` target. See #85
|
||||
|
||||
### 1.0.1 (2013-09-25)
|
||||
- Unconditionally add -D in avrdude options. See #114
|
||||
|
|
|
@ -559,6 +559,14 @@ ifeq ($(strip $(NO_CORE)),)
|
|||
ISP_EXT_FUSE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.extended_fuses)
|
||||
endif
|
||||
|
||||
ifndef BOOTLOADER_PATH
|
||||
BOOTLOADER_PATH = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.path)
|
||||
endif
|
||||
|
||||
ifndef BOOTLOADER_FILE
|
||||
BOOTLOADER_FILE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.file)
|
||||
endif
|
||||
|
||||
ifndef ISP_LOCK_FUSE_POST
|
||||
ISP_LOCK_FUSE_POST = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.lock_bits)
|
||||
endif
|
||||
|
@ -991,13 +999,19 @@ ifndef AVRDUDE_ISP_BAUDRATE
|
|||
endif
|
||||
endif
|
||||
|
||||
# Fuse settings copied from Arduino IDE.
|
||||
# https://github.com/arduino/Arduino/blob/master/app/src/processing/app/debug/AvrdudeUploader.java#L254
|
||||
|
||||
# Pre fuse settings
|
||||
ifndef AVRDUDE_ISP_FUSES_PRE
|
||||
|
||||
ifneq ($(strip $(ISP_LOCK_FUSE_PRE)),)
|
||||
AVRDUDE_ISP_FUSES_PRE += -U lock:w:$(ISP_LOCK_FUSE_PRE):m
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(ISP_EXT_FUSE)),)
|
||||
AVRDUDE_ISP_FUSES_PRE += -U efuse:w:$(ISP_EXT_FUSE):m
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(ISP_HIGH_FUSE)),)
|
||||
AVRDUDE_ISP_FUSES_PRE += -U hfuse:w:$(ISP_HIGH_FUSE):m
|
||||
endif
|
||||
|
@ -1005,11 +1019,16 @@ ifndef AVRDUDE_ISP_FUSES_PRE
|
|||
ifneq ($(strip $(ISP_LOW_FUSE)),)
|
||||
AVRDUDE_ISP_FUSES_PRE += -U lfuse:w:$(ISP_LOW_FUSE):m
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(ISP_EXT_FUSE)),)
|
||||
AVRDUDE_ISP_FUSES_PRE += -U efuse:w:$(ISP_EXT_FUSE):m
|
||||
# Bootloader file settings
|
||||
# TODO: Handle relative bootloader file path as well
|
||||
ifndef AVRDUDE_ISP_BURN_BOOTLOADER
|
||||
ifneq ($(strip $(BOOTLOADER_PATH)),)
|
||||
ifneq ($(strip $(BOOTLOADER_FILE)),)
|
||||
AVRDUDE_ISP_BURN_BOOTLOADER += -U flash:w:$(BOOTLOADER_PATH)/$(BOOTLOADER_FILE):i
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# Post fuse settings
|
||||
|
@ -1102,12 +1121,17 @@ reset_stty:
|
|||
$$STTYF $(call get_monitor_port) -hupcl
|
||||
|
||||
ispload: $(TARGET_EEP) $(TARGET_HEX) verify_size
|
||||
ifdef AVRDUDE_ISP_FUSES_PRE
|
||||
$(AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ISP_OPTS) -e $(AVRDUDE_ISP_FUSES_PRE)
|
||||
endif
|
||||
$(AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ISP_OPTS) \
|
||||
$(AVRDUDE_ISPLOAD_OPTS)
|
||||
ifdef AVRDUDE_ISP_FUSES_POST
|
||||
|
||||
burn_bootloader:
|
||||
ifneq ($(strip $(AVRDUDE_ISP_FUSES_PRE)),)
|
||||
$(AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ISP_OPTS) -e $(AVRDUDE_ISP_FUSES_PRE)
|
||||
endif
|
||||
ifneq ($(strip $(AVRDUDE_ISP_BURN_BOOTLOADER)),)
|
||||
$(AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ISP_OPTS) $(AVRDUDE_ISP_BURN_BOOTLOADER)
|
||||
endif
|
||||
ifneq ($(strip $(AVRDUDE_ISP_FUSES_POST)),)
|
||||
$(AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ISP_OPTS) $(AVRDUDE_ISP_FUSES_POST)
|
||||
endif
|
||||
|
||||
|
@ -1146,30 +1170,31 @@ generated_assembly: generate_assembly
|
|||
|
||||
help:
|
||||
@$(ECHO) "\nAvailable targets:\n\
|
||||
make - no upload\n\
|
||||
make upload - upload\n\
|
||||
make clean - remove all our dependencies\n\
|
||||
make depends - update dependencies\n\
|
||||
make reset - reset the Arduino by tickling DTR on the serial port\n\
|
||||
make raw_upload - upload without first resetting\n\
|
||||
make show_boards - list all the boards defined in boards.txt\n\
|
||||
make monitor - connect to the Arduino's serial port\n\
|
||||
make size - show the size of the compiled output (relative to\n\
|
||||
resources, if you have a patched avr-size)\n\
|
||||
make disasm - generate a .lss file in build-cli that contains\n\
|
||||
disassembly of the compiled file interspersed\n\
|
||||
with your original source code.\n\
|
||||
make verify_size - Verify that the size of the final file is less than\n\
|
||||
the capacity of the micro controller.\n\
|
||||
make eeprom - upload the eep file\n\
|
||||
make raw_eeprom - upload the eep file without first resetting\n\
|
||||
make help - show this help\n\
|
||||
make - no upload\n\
|
||||
make upload - upload\n\
|
||||
make clean - remove all our dependencies\n\
|
||||
make depends - update dependencies\n\
|
||||
make reset - reset the Arduino by tickling DTR on the serial port\n\
|
||||
make raw_upload - upload without first resetting\n\
|
||||
make show_boards - list all the boards defined in boards.txt\n\
|
||||
make monitor - connect to the Arduino's serial port\n\
|
||||
make size - show the size of the compiled output (relative to\n\
|
||||
resources, if you have a patched avr-size)\n\
|
||||
make disasm - generate a .lss file in build-cli that contains\n\
|
||||
disassembly of the compiled file interspersed\n\
|
||||
with your original source code.\n\
|
||||
make verify_size - Verify that the size of the final file is less than\n\
|
||||
the capacity of the micro controller.\n\
|
||||
make eeprom - upload the eep file\n\
|
||||
make raw_eeprom - upload the eep file without first resetting\n\
|
||||
make burn_bootloader - Burn bootloader and/or fuses\n\
|
||||
make help - show this help\n\
|
||||
"
|
||||
@$(ECHO) "Please refer to $(ARDMK_DIR)/arduino-mk/Arduino.mk for more details."
|
||||
|
||||
.PHONY: all upload raw_upload raw_eeprom error_on_caterina reset reset_stty ispload \
|
||||
clean depends size show_boards monitor disasm symbol_sizes generated_assembly \
|
||||
generate_assembly verify_size help
|
||||
generate_assembly verify_size burn_bootloader help
|
||||
|
||||
# added - in the beginning, so that we don't get an error if the file is not present
|
||||
-include $(DEPS)
|
||||
|
|
Loading…
Reference in a new issue