aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Gagne <don@thegagnes.com>2014-11-18 17:20:50 -0800
committerDon Gagne <don@thegagnes.com>2014-11-18 17:20:50 -0800
commitf3f7f08e0d98be7eaba589fb6466f1d411f56b33 (patch)
tree01a61bb0e549b7efd2ffae5116226c075fc09594
parent97a1410ec99e880207e4ee6d2a03451c2e11f4cf (diff)
downloadpx4-firmware-f3f7f08e0d98be7eaba589fb6466f1d411f56b33.tar.gz
px4-firmware-f3f7f08e0d98be7eaba589fb6466f1d411f56b33.tar.bz2
px4-firmware-f3f7f08e0d98be7eaba589fb6466f1d411f56b33.zip
Parameter xml metadata in .px4
-rwxr-xr-xTools/px_mkfw.py5
-rw-r--r--makefiles/config_px4fmu-v1_default.mk3
-rw-r--r--makefiles/config_px4fmu-v2_default.mk3
-rw-r--r--makefiles/firmware.mk9
4 files changed, 20 insertions, 0 deletions
diff --git a/Tools/px_mkfw.py b/Tools/px_mkfw.py
index b598a65a1..c2da8a203 100755
--- a/Tools/px_mkfw.py
+++ b/Tools/px_mkfw.py
@@ -73,6 +73,7 @@ parser.add_argument("--version", action="store", help="set a version string")
parser.add_argument("--summary", action="store", help="set a brief description")
parser.add_argument("--description", action="store", help="set a longer description")
parser.add_argument("--git_identity", action="store", help="the working directory to check for git identity")
+parser.add_argument("--parameter_xml", action="store", help="the parameters.xml file")
parser.add_argument("--image", action="store", help="the firmware image")
args = parser.parse_args()
@@ -101,6 +102,10 @@ if args.git_identity != None:
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout
desc['git_identity'] = str(p.read().strip())
p.close()
+if args.parameter_xml != None:
+ f = open(args.parameter_xml, "rb")
+ bytes = f.read()
+ desc['parameter_xml'] = base64.b64encode(zlib.compress(bytes,9)).decode('utf-8')
if args.image != None:
f = open(args.image, "rb")
bytes = f.read()
diff --git a/makefiles/config_px4fmu-v1_default.mk b/makefiles/config_px4fmu-v1_default.mk
index 9fe16fbb6..4507b506c 100644
--- a/makefiles/config_px4fmu-v1_default.mk
+++ b/makefiles/config_px4fmu-v1_default.mk
@@ -132,6 +132,9 @@ MODULES += lib/launchdetection
# Hardware test
#MODULES += examples/hwtest
+# Generate parameter XML file
+GEN_PARAM_XML = 1
+
#
# Transitional support - add commands from the NuttX export archive.
#
diff --git a/makefiles/config_px4fmu-v2_default.mk b/makefiles/config_px4fmu-v2_default.mk
index 3c65b19e0..d3b8ee93e 100644
--- a/makefiles/config_px4fmu-v2_default.mk
+++ b/makefiles/config_px4fmu-v2_default.mk
@@ -141,6 +141,9 @@ MODULES += modules/bottle_drop
# Hardware test
#MODULES += examples/hwtest
+# Generate parameter XML file
+GEN_PARAM_XML = 1
+
#
# Transitional support - add commands from the NuttX export archive.
#
diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk
index 60602e76f..21e8739aa 100644
--- a/makefiles/firmware.mk
+++ b/makefiles/firmware.mk
@@ -467,6 +467,7 @@ endif
PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4
PRODUCT_BIN = $(WORK_DIR)firmware.bin
PRODUCT_ELF = $(WORK_DIR)firmware.elf
+PRODUCT_PARAMXML = $(WORK_DIR)/parameters.xml
.PHONY: firmware
firmware: $(PRODUCT_BUNDLE)
@@ -497,9 +498,17 @@ $(filter %.S.o,$(OBJS)): $(WORK_DIR)%.S.o: %.S $(GLOBAL_DEPS)
$(PRODUCT_BUNDLE): $(PRODUCT_BIN)
@$(ECHO) %% Generating $@
+ifdef GEN_PARAM_XML
+ python $(PX4_BASE)/Tools/px_process_params.py --src-path $(PX4_BASE)/src --xml
$(Q) $(MKFW) --prototype $(IMAGE_DIR)/$(BOARD).prototype \
--git_identity $(PX4_BASE) \
+ --parameter_xml $(PRODUCT_PARAMXML) \
--image $< > $@
+else
+ $(Q) $(MKFW) --prototype $(IMAGE_DIR)/$(BOARD).prototype \
+ --git_identity $(PX4_BASE) \
+ --image $< > $@
+endif
$(PRODUCT_BIN): $(PRODUCT_ELF)
$(call SYM_TO_BIN,$<,$@)