该程序的作用是将.bin文件转成hex和dat文件
运行命令:python exchange.py -f a.bin -d 0x0
#!/python3.5/bin/python3
import re
import os
import argparse
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
demo_doc = """
===============================
Command:
change bin file to hex and dat files
python exchange.py -f a.bin -d 0x0
===============================
"""
class file_transform():
def __init__(self,binfile,start_addr):
self.binfile = binfile
self.start_addr = int(start_addr,16)
def main(self):
if not (os.path.exists('./output')):
os.system("mkdir output")
filename = re.sub('.bin$','',self.binfile)
hex_file = filename + '.hex'
dat_file = filename + '.dat'
os.system("od -v -tx4 -An -w4 %s > ./output/%s"%(self.binfile,hex_file))
fhex = open('./output/%s'%hex_file,'r')
fdat = open('./output/%s'%dat_file,'w')
lines = fhex.readlines()
for line in lines:
a = line[0:4]
b = line[2:4]
c = line[4:6]
d = line[6:8]
fdat.write('%x /%s;\n'%(self.start_addr,d))
fdat.write('%x /%s;\n'%(self.start_addr+1,c))
fdat.write('%x /%s;\n'%(self.start_addr+2,b))
fdat.write('%x /%s;\n'%(self.start_addr+3,a))
self.start_addr += 4
def my_getopt():
parser = argparse.ArgumentParser(formatter_class=argparse.RawTexHelpFormatter,epilog=demo_doc)
parser.add_argument('-f' , "--binfile" ,default='' ,help='input bin file')
parser.add_argument('-d' , "--start_addr" ,default='' ,help='input start addr')
args = parser.parse_args()
return args
if __name__=='__main__':
cmd_opt = my_getopt()
m_file_transform = file_transform(cmd_opt.binfile,cmd_opt.start_addr)
m_file_transform.main()
print('\033[0;35m\n[REPORT]\033[0m Success !!!\n')