27 lines
939 B
Python
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)
|