• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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