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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user