1#!/usr/bin/env python3 2# coding=utf-8 3 4# Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17import sys 18import struct 19 20 21def create_hex_file(_bin, _hex): 22 with open(str(_bin), "rb") as binfile, open( 23 str(_hex), "wb") as hexfile: 24 while True: 25 bindata = binfile.read(4) 26 if not bindata: 27 break 28 if len(bindata) != 4: 29 bindata = bindata + b'\x00' * (4 - len(bindata)) 30 longdata, = struct.unpack("<L", bindata) 31 hexstr = '{:x}'.format(longdata) # dec to hex number str 32 hexstr = '%s\r\n' % '{:0>8}'.format(hexstr).upper() 33 hexfile.write(str.encode(hexstr)) 34 35if __name__ == "__main__": 36 create_hex_file(sys.argv[1], sys.argv[2]) 37