From 33a48d926c4c5e1ac578d69f75efa84ab46c5426 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sat, 10 Sep 2016 20:01:52 -0400 Subject: [PATCH] build: Support creating and storing the data dictionary on each build Generate the data dictionary in out/klipper.dict on each build. This makes it easier to use the dictionary when debugging. Signed-off-by: Kevin O'Connor --- Makefile | 2 +- scripts/buildcommands.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index fedc4d56..2cbc7281 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ $(OUT)klipper.o: $(patsubst %.c, $(OUT)src/%.o,$(src-y)) $(OUT)declfunc.lds $(OUT)compile_time_request.o: $(OUT)klipper.o ./scripts/buildcommands.py @echo " Building $@" $(Q)$(OBJCOPY) -j '.compile_time_request' -O binary $< $(OUT)klipper.o.compile_time_request - $(Q)$(PYTHON) ./scripts/buildcommands.py $(OUT)klipper.o.compile_time_request $(OUT)autoconf.h $(OUT)compile_time_request.c + $(Q)$(PYTHON) ./scripts/buildcommands.py -d $(OUT)klipper.dict $(OUT)klipper.o.compile_time_request $(OUT)autoconf.h $(OUT)compile_time_request.c $(Q)$(CC) $(CFLAGS) -c $(OUT)compile_time_request.c -o $@ $(OUT)klipper.elf: $(OUT)klipper.o $(OUT)compile_time_request.o diff --git a/scripts/buildcommands.py b/scripts/buildcommands.py index af9926ca..9b6acb45 100644 --- a/scripts/buildcommands.py +++ b/scripts/buildcommands.py @@ -173,7 +173,7 @@ const uint8_t command_identify_data[] PROGMEM = {%s // Identify size = %d (%d uncompressed) const uint32_t command_identify_size PROGMEM = ARRAY_SIZE(command_identify_data); """ - return fmt % (''.join(out), len(zdata), len(data)) + return data, fmt % (''.join(out), len(zdata), len(data)) ###################################################################### @@ -227,6 +227,8 @@ def main(): opts = optparse.OptionParser(usage) opts.add_option("-e", "--extra", dest="extra", default="", help="extra version string to append to version") + opts.add_option("-d", dest="write_dictionary", + help="file to write mcu protocol dictionary") opts.add_option("-v", action="store_true", dest="verbose", help="enable debug messages") @@ -302,12 +304,18 @@ def main(): sys.stdout.write("Version: %s\n" % (version,)) responses = [msg_to_id[msg] for msgname, msg in messages_by_name.items() if msgname not in commands] - icode = build_identify(cmd_by_id, msg_to_id, responses, static_strings - , config, version) + datadict, icode = build_identify(cmd_by_id, msg_to_id, responses + , static_strings, config, version) # Write output f = open(outcfile, 'wb') f.write(FILEHEADER + paramcode + parsercode + cmdcode + icode) f.close() + # Write data dictionary + if options.write_dictionary: + f = open(options.write_dictionary, 'wb') + f.write(datadict) + f.close() + if __name__ == '__main__': main()