补充tools目录
This commit is contained in:
73
tools/rom_img/riscv3/romhex.py
Normal file
73
tools/rom_img/riscv3/romhex.py
Normal file
@@ -0,0 +1,73 @@
|
||||
#
|
||||
# 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])
|
||||
|
Reference in New Issue
Block a user