未使用領域のフィルを指定したが、追加出力したファイルに反映されない

テクニカル・ノート 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

 

まとめ

プロジェクトメニュー > オプション > 出力コンバータ によって、ヘキサファイルを生成すると、未使用領域のフィルが行われる前にヘキサファイルが生成されます。

ポストビルドコマンドでフィルをした後にヘキサファイルを生成するようにしてください。

 

 

全ての製品名は、それぞれの所有者の商標または登録商標です

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。