intel hexファイルのマージ

PIC32MXのプログラムを開発中、2つのintel hexファイル(bootloaderとfirmware本体)を1度に書き込みたいと思ったのだが、pic32progではできない。objcopyあたりでmergeできるか調べるが,無理そう。hexファイルのmergeならpythonで自分で書いても簡単そうなので書き始めるが、念のため python + intel hexで検索したら、ライブラリ、その名もintelhexがあった。ドキュメントによるとmerge機能まである。サンプルを見ながらプログラムを書き、あっさり動作。凄いね。世の中は。

import sys
from intelhex import IntelHex

usage = "%s hex_infile1 hex_infile2 hex_outfile" % sys.argv[0]
if len(sys.argv) != 4:
    print(usage)
    sys.exit(1)

infile1, infile2,outfile  = sys.argv[1:]

ih1 = IntelHex(infile1)
ih2 = IntelHex(infile2)
ih1.merge(ih2, overlap='ignore')
ih1.write_hex_file(outfile)

ドキュメントによると、ライブラリにhexmerge.pyというユーティリティが付属し、ライブラリと一緒にインストールされるとあったが、わたしの環境では見付らない。これが使えれば、プログラムを書く必要すら無い。

Leave a Reply

メールアドレスが公開されることはありません。