1# Date    : 2019/03/08
2# Author  : Snow Yang
3# Mail    : yangsw@mxchip.com
4
5import re
6import os
7import sys
8from struct import pack
9
10image_file = sys.argv[1]
11section_start_name = sys.argv[2]
12symbol_list_file = sys.argv[3]
13
14size = os.path.getsize(image_file)
15addr = int('0x'+re.search(r"\n(\w+) (\w+) "+section_start_name, open(symbol_list_file).read()).group(1), 16)
16header = b'81958711' + pack('<L', size) + pack('<L', addr) + b'\xFF'*16
17
18open(image_file.replace('.bin', '_prepend.bin'), 'wb').write(header + open(image_file, 'rb').read())
19