1
0
mirror of https://github.com/antonblanchard/microwatt.git synced 2026-03-10 20:34:07 +00:00

bin2hex: handle any file length, not just 8 or 4

Treat the input as if it was padded with zeroes to a multiple
of 8. This is needed if the .data in a binary changes size, it
won't be a nice multiple of 4 or 8. At present the microwatt
binaries all are multiples of 8, but making code alterations could make
bin2hex fail unexpectedly.

Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
This commit is contained in:
Matt Johnston
2022-10-27 14:16:49 +08:00
parent 84a0fba25d
commit dfecda3a5f

View File

@@ -7,11 +7,8 @@ import struct
with open(sys.argv[1], "rb") as f:
while True:
word = f.read(8)
if len(word) == 8:
print("%016x" % struct.unpack('Q', word));
elif len(word) == 4:
print("00000000%08x" % struct.unpack('I', word));
elif len(word) == 0:
if len(word) == 0:
exit(0);
else:
raise Exception("Bad length")
if len(word) != 8:
word = word + bytes(8 - len(word))
print("%016x" % struct.unpack('Q', word));