スタートアップコードの削除
テクニカル・ノート 13062
アーキテクチャ:
All
コンポーネント:
linker
更新日:
2018/01/15 6:16
はじめに
アプリケーションが2つのIAR Embeddeb Workbench のプロジェクトで構成され、1つ目のプロジェクトが2つ目のプロジェクトのバイナリイメージをリンクしている場合
問題
2つ目のアプリケーションのスタートアップコードもバイナリイメージに含まれます。問題としては、不要なスタートアップコードが含まれることでリンクされた出力サイズが大きくなります。1つ目のアプリケーションの実行開始に含まれるメインプロジェクトのスタートアップコードのみが必要です。
期待される挙動
バイナリイメージから2つ目のプロジェクトの不要なスタートアップコードを削除します。
提案
デフォルトでは、リンカが必要なシンボルのチェックを開始するラベルは __iar_program_start(すなわちスタートアップコードの先頭)です。
プロジェクトオプションで別のエントリシンボルを指定することでデフォルトの設定をオーバーライドすることができます。 例えば:
- IAR Embedded Workbench for AVR の場合:
Options > Linker > Config > Override default program entry > Entry symbol - IAR Embedded Workbench for ARM の場合:
Options > Linker > Library > Override default program entry > Entry symbol
ARM 用のサンプルプロジェクト
サンプルプロジェクトとしては Technical Note 28924 のプロジェクト 'Common' を確認してください。'Entry symbol'が上書きされています。 (機能のない関数を指定しています。)
全ての製品名は、それぞれの所有者の商標または登録商標です