前言
工作中有遇到对编译出来的bin文件用脚本进行合并和填充的情况,仅做记录,供大家参考。
一、将bin文件用0xFF填充到2048K固定大小
import sys
import os
import shutil
import struct
if os.path.exists(all_bin_file):
bin_merge = open(all_bin_file, 'ab')
all_bin_size = os.path.getsize(all_bin_file)
final_size = 2048*1024
offset = all_bin_size
value_default = struct.pack('B', 0xFF)
while offset < final_size:
bin_merge.write(value_default)
offset = bin_merge.tell()
bin_merge.close()
二、读写和合并多个二进制文件
在烧录程序的时候,需要将多个二进制bin文件合成一个,并且要指定数据段地址偏移量,在数据段之间的地址填充默认值0xff。因为不想手动操作,想直接通过make命令就可以生成合并后的bin文件,具体方法是通过在makefile中添加调用python脚本命令来实现bin文件合并操作,没正经学过脚本语言,python上手最快,就决定用python写一个脚本,然后添加到makefile中就好了。