summaryrefslogtreecommitdiff
path: root/tools/hex2c.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/hex2c.py')
-rwxr-xr-xtools/hex2c.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/hex2c.py b/tools/hex2c.py
index eb4f34d..fa4762c 100755
--- a/tools/hex2c.py
+++ b/tools/hex2c.py
@@ -3,6 +3,7 @@
# SPDX-License-Identifier: LGPL-3.0-or-later
# Copyright (C) 2020 Daniel Thompson
+import binascii
import intelhex
import sys
@@ -14,6 +15,7 @@ def generate_c(ihex):
print('struct segment {')
print(' uint32_t start;');
print(' uint32_t end;');
+ print(' uint32_t crc32;')
print(' const uint8_t *data;')
print('};')
print()
@@ -29,7 +31,9 @@ def generate_c(ihex):
print('\n};\n')
print(f'const struct segment segments[] = {{')
for i, segment in enumerate(ihex.segments()):
- print(f' 0x{segment[0]:08x}, 0x{segment[1]:08x}, segment{i},')
+ sg = ihex.tobinarray(start=segment[0], end=segment[1]-1)
+ crc = binascii.crc32(sg)
+ print(f' 0x{segment[0]:08x}, 0x{segment[1]:08x}, 0x{crc:08x}, segment{i},')
print('};')
ihex = intelhex.IntelHex()