From 02510f4b8835f13d0afd87c833542aefa84cbb57 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 4 May 2015 14:41:48 +0200 Subject: add ihex format and trifle upload target --- makefiles/firmware.mk | 9 +++++++-- makefiles/toolchain_gnu-arm-eabi.mk | 8 ++++++++ makefiles/upload.mk | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk index 611aa6d22..d352b95c4 100644 --- a/makefiles/firmware.mk +++ b/makefiles/firmware.mk @@ -471,6 +471,7 @@ endif # PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4 PRODUCT_BIN = $(WORK_DIR)firmware.bin +PRODUCT_HEX = $(WORK_DIR)firmware.hex PRODUCT_ELF = $(WORK_DIR)firmware.elf PRODUCT_PARAMXML = $(WORK_DIR)/parameters.xml @@ -501,7 +502,7 @@ $(filter %.S.o,$(OBJS)): $(WORK_DIR)%.S.o: %.S $(GLOBAL_DEPS) # Built product rules # -$(PRODUCT_BUNDLE): $(PRODUCT_BIN) +$(PRODUCT_BUNDLE): $(PRODUCT_BIN) $(PRODUCT_HEX) @$(ECHO) %% Generating $@ ifdef GEN_PARAM_XML $(Q) $(PYTHON) $(PX4_BASE)/Tools/px_process_params.py --src-path $(PX4_BASE)/src --board CONFIG_ARCH_BOARD_$(CONFIG_BOARD) --xml @@ -518,6 +519,9 @@ endif $(PRODUCT_BIN): $(PRODUCT_ELF) $(call SYM_TO_BIN,$<,$@) +$(PRODUCT_HEX): $(PRODUCT_ELF) + $(call SYM_TO_HEX,$<,$@) + $(PRODUCT_ELF): $(OBJS) $(MODULE_OBJS) $(LIBRARY_LIBS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES) $(call LINK,$@,$(OBJS) $(MODULE_OBJS) $(STARTUP_OBJS) $(LIBRARY_LIBS)) @@ -532,7 +536,8 @@ upload: $(PRODUCT_BUNDLE) $(PRODUCT_BIN) CONFIG=$(CONFIG) \ BOARD=$(BOARD) \ BUNDLE=$(PRODUCT_BUNDLE) \ - BIN=$(PRODUCT_BIN) + BIN=$(PRODUCT_BIN) \ + HEX=$(PRODUCT_HEX) .PHONY: clean clean: $(MODULE_CLEANS) diff --git a/makefiles/toolchain_gnu-arm-eabi.mk b/makefiles/toolchain_gnu-arm-eabi.mk index 3b9fefb3e..45426ef06 100644 --- a/makefiles/toolchain_gnu-arm-eabi.mk +++ b/makefiles/toolchain_gnu-arm-eabi.mk @@ -290,6 +290,14 @@ define SYM_TO_BIN $(Q) $(OBJCOPY) -O binary $1 $2 endef +# Convert $1 from a linked object to a raw binary in $2 +# +define SYM_TO_HEX + @$(ECHO) "HEX: $2" + @$(MKDIR) -p $(dir $2) + $(Q) $(OBJCOPY) -O ihex $1 $2 +endef + # Take the raw binary $1 and make it into an object file $2. # The symbol $3 points to the beginning of the file, and $3_len # gives its length. diff --git a/makefiles/upload.mk b/makefiles/upload.mk index dd7710bf7..474bd4644 100644 --- a/makefiles/upload.mk +++ b/makefiles/upload.mk @@ -36,6 +36,9 @@ upload-serial-aerocore: upload-serial-px4-stm32f4discovery: $(BUNDLE) $(UPLOADER) $(Q) $(PYTHON) -u $(UPLOADER) --port $(SERIAL_PORTS) $(BUNDLE) +upload-serial-trifle: $(HEX) + teensy_loader_cli -mmcu=mk20dx256 -w -v $(HEX) + # # JTAG firmware uploading with OpenOCD # -- cgit v1.2.3