Files
kunlun/tools/rom_img/riscv3/romhex.py
2024-09-28 16:31:13 +08:00

74 lines
2.6 KiB
Python
Executable File

#
# Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
#
# This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
# be copied by any method or incorporated into another program without
# the express written consent of Aerospace C.Power. This Information or any portion
# thereof remains the property of Aerospace C.Power. The Information contained herein
# is believed to be accurate and Aerospace C.Power assumes no responsibility or
# liability for its use in any way and conveys no license or title under
# any patent or copyright and makes no representation or warranty that this
# Information is free from patent or copyright infringement.
import os
import sys
import time
len1 = 16384
len2 = 245760
split_len = 65536
def bin_to_hex(target1, target2):
with open("romcode_total.bin", 'wb') as tmpf:
# write romcode_total.bin use target1
with open(target1, 'rb') as sf1:
in_size = 0
b = sf1.read(4)
while b:
tmpf.write(b)
in_size = in_size + len(b)
b = sf1.read(4)
while in_size < len1:
tmpf.write(b'\0')
in_size = in_size + 1
# continue write romcode_total.bin use target2
with open(target2, 'rb') as sf2:
in_size = 0
b = sf2.read(4)
while b:
tmpf.write(b)
in_size = in_size + len(b)
b = sf2.read(4)
while in_size < len2:
tmpf.write(b'\0')
in_size = in_size + 1
tmpf.flush()
tmpf.close()
time.sleep(1)
# split romcode_total use split_len
with open("romcode_total.bin", 'rb') as out_total:
file_index = 1
b = out_total.read(4)
while b:
out_name = 'romcode' + str(file_index) + '.hex'
print("" + out_name)
with open(out_name, 'w') as outf:
in_size = 4
while in_size <= split_len and b:
outf.write('%02x%02x%02x%02x\n' % (b[3], b[2], b[1], b[0]))
in_size = in_size + 4
b = out_total.read(4)
while in_size <= split_len:
outf.write('%02x%02x%02x%02x\n' % (0, 0, 0, 0))
in_size = in_size + 4
outf.flush()
outf.close()
file_index = file_index + 1
if __name__ == "__main__":
bin_to_hex(sys.argv[1], sys.argv[2])