スタートアップコードの削除

テクニカル・ノート 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'が上書きされています。 (機能のない関数を指定しています。)

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

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