xiuos/mergebin.py

27 lines
939 B
Python

import os
def mergeBinProccess( files, fileSaveName):
bin = b''
startAddrLast = files[0][1]
fileSizeLast = 0
for file, addr in files:
fillLen = addr - (startAddrLast + fileSizeLast)
if fillLen > 0: # fill 0xFF
fill = bytearray([0xFF for i in range(fillLen)])
bin += fill
with open(file, "rb") as f: # add bin file content
bin += f.read()
startAddrLast = addr
fileSizeLast = os.path.getsize(file)
with open(fileSaveName, "wb") as f:
f.write(bin)
if __name__ == '__main__':
file1 = r'./build/XiUOS_kd233_kernel.bin'
file1_start_addr = 0
file2 = r'./build/XiUOS_kd233_app.bin'
file2_start_addr = 1024 * 1024 + 4096
newfile = r'./build/XiUOS_kd233.bin'
file = [ [file1 , file1_start_addr] , [file2 , file2_start_addr] ]
mergeBinProccess(file, newfile)