summaryrefslogtreecommitdiff
path: root/tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py')
-rw-r--r--tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py b/tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py
new file mode 100644
index 0000000000..c60e9c4e74
--- /dev/null
+++ b/tmk_core/tool/mbed/mbed-sdk/workspace_tools/dev/intel_hex_utils.py
@@ -0,0 +1,31 @@
+from intelhex import IntelHex
+from cStringIO import StringIO
+
+
+def sections(h):
+ start, last_address = None, None
+ for a in h.addresses():
+ if last_address is None:
+ start, last_address = a, a
+ continue
+
+ if a > last_address + 1:
+ yield (start, last_address)
+ start = a
+
+ last_address = a
+
+ if start:
+ yield (start, last_address)
+
+
+def print_sections(h):
+ for s in sections(h):
+ print "[0x%08X - 0x%08X]" % s
+
+
+def decode(record):
+ h = IntelHex()
+ f = StringIO(record)
+ h.loadhex(f)
+ h.dump()