未使用領域のフィルを指定したが、追加出力したファイルに反映されない
テクニカル・ノート 180513J
アーキテクチャ:
ARM
コンポーネント:
linker
更新日:
2018/09/04 4:47
はじめに
このテクニカルノートでは、未使用領域のフィルを指定したにもかかわらず、追加出力したファイルに反映されない場合の原因と対策について説明します。
解説
ヘキサファイルを、
プロジェクトメニュー > オプション > 出力コンバータ
で作成すると、ヘキサファイルの作成が、ポストビルドアクションより前に行われます。
ビルドウィンドウで、右クリック > オプションを開き、ビルドメッセージの表示のドロップダウンリストで「全て」を選択して、再ビルドすると、ielftoolが呼び出される順番を確認することができます。
この順番は変更することはできませんから、0xff をフィルする呼び出しとチェックサムを作成する呼び出しを一つのバッチファイルに入れて、呼び出すようにしてください。
[例]
ポストビルドコマンド
$PROJ_DIR$\ielf.bat $TARGET_PATH$ $TARGET_BPATH$
ielf.bat
ielftool --fill 0xFF;0x00000000-0x0000FFFD --checksum __checksum:2,crc16,0x0;0x0000000-0x0000FFFD --verbose %1 %1
ielftool --ihex --verbose %1 %2.hex
まとめ
プロジェクトメニュー > オプション > 出力コンバータ によって、ヘキサファイルを生成すると、未使用領域のフィルが行われる前にヘキサファイルが生成されます。
ポストビルドコマンドでフィルをした後にヘキサファイルを生成するようにしてください。
全ての製品名は、それぞれの所有者の商標または登録商標です