aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-05-04 14:41:48 +0200
committerJakob Odersky <jodersky@gmail.com>2015-05-14 12:27:10 +0200
commit02510f4b8835f13d0afd87c833542aefa84cbb57 (patch)
tree6ad70cab834243685946c4d93115eb193859cb32
parent3ef902a669c6df4dad80f2c4964eae87e5be7224 (diff)
downloadpx4-firmware-02510f4b8835f13d0afd87c833542aefa84cbb57.tar.gz
px4-firmware-02510f4b8835f13d0afd87c833542aefa84cbb57.tar.bz2
px4-firmware-02510f4b8835f13d0afd87c833542aefa84cbb57.zip
add ihex format and trifle upload target
-rw-r--r--makefiles/firmware.mk9
-rw-r--r--makefiles/toolchain_gnu-arm-eabi.mk8
-rw-r--r--makefiles/upload.mk3
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
#