checksumコマンドの対応
多くのROMライターが、このチェックサムを自動生成して書き込んでいる。たとえば、
上記リンクには以下の一文もある
When downloading code via the debugger, this checksum word will be filled in automatically as the image is downloaded
要調査であることは事実。
Code Redの主張をまとめる。
以下の対応を行った。
--- Makefile.target (リビジョン 518) +++ Makefile.target (作業コピー) @@ -46,8 +46,18 @@ # # Intel Hexファイルの生成 # +# checksumプログラムは、NXP LPCシリーズが持つバイナリ +# チェックサム検証機能に対応させるためのプログラムである。 +# +# Code Red社が供給しているchecksumプログラムは、 +# binファイルにのみ有効に機能する。 +# hexファイルの場合、一度binファイルを生成し、 +# checksumプログラムを実行してからその結果を変換する。 +# $(OBJNAME).hex: $(OBJFILE) - $(OBJCOPY) -O ihex -S $(OBJFILE) $(OBJNAME).hex + $(OBJCOPY) -O binary $(OBJFILE) $(OBJNAME).bin + checksum -p $(CHIP) -d -v $(OBJNAME).bin + $(OBJCOPY) -I binary -O ihex $(OBJNAME).bin $(OBJNAME).hex
--- sample/Makefile (リビジョン 518) +++ sample/Makefile (作業コピー) @@ -330,6 +330,7 @@ # $(OBJNAME).bin: $(OBJFILE) $(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin + checksum -p $(CHIP) -d -v $(OBJNAME).bin
asp/target/lpcxpresso1768_gcc/Makefile.target への変更は、これで良さそうに思える。
sample1のMakefileの変更には反対。
現状のMakefileにはchecksumコマンドによるチェックサムの更新がない。
Code Red社のページにはチェックサムの更新が必要である旨が書かれている。
チェックサムがあっていない場合、正しくブートしない。
OBJFILEに対してchecksumコマンドでチェックサムの更新を行なった方が良いかもしれない。
http://support.code-red-tech.com/CodeRedWiki/OutputFormats