summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/hex2c.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/hex2c.py b/tools/hex2c.py
index fa4762c..74f8431 100755
--- a/tools/hex2c.py
+++ b/tools/hex2c.py
@@ -20,7 +20,16 @@ def generate_c(ihex):
print('};')
print()
- for i, segment in enumerate(ihex.segments()):
+ segments = []
+ chunk = 32 * 1024
+ for (start, end) in ihex.segments():
+ while start + chunk < end:
+ segments.append((start, start + chunk))
+ start += chunk
+ if start < end:
+ segments.append((start, end))
+
+ for i, segment in enumerate(segments):
print(f'static const uint8_t segment{i}[] = {{', end='')
for j in range(segment[0], segment[1]):
@@ -30,7 +39,7 @@ def generate_c(ihex):
print('\n};\n')
print(f'const struct segment segments[] = {{')
- for i, segment in enumerate(ihex.segments()):
+ for i, segment in enumerate(segments):
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},')