PIC32MXのプログラムを開発中、2つのintel hexファイル(bootloaderとfirmware本体)を1度に書き込みたいと思ったのだが、pic32progではできない。objcopyあたりでmergeできるか調べるが,無理そう。hexファイルのmergeならpythonで自分で書いても簡単そうなので書き始めるが、念のため python + intel hexで検索したら、ライブラリ、その名もintelhexがあった。ドキュメントによるとmerge機能まである。サンプルを見ながらプログラムを書き、あっさり動作。凄いね。世の中は。
[python]
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)
[/python]
ドキュメントによると、ライブラリにhexmerge.pyというユーティリティが付属し、ライブラリと一緒にインストールされるとあったが、わたしの環境では見付らない。これが使えれば、プログラムを書く必要すら無い。