イメージのエントリポイント

イメージ内のエントリポイントは、プログラムの実行開始位置です。 エントリポイントには以下の 2 つの種類があります。

初期エントリポイント

イメージの初期エントリポイントは 1 つの値で表され、ELF ヘッダファイルに格納されています。 オペレーティングシステムまたはブートローダによって RAM にロードされるプログラムの場合、ローダはイメージ内の初期エントリポイントに制御を渡すことによって、イメージの実行を開始します。

1 つのイメージ内で使用できる初期エントリポイントは 1 つだけです。 初期エントリポイントとして、ENTRY ディレクティブによって設定されたエントリポイントの 1 つを使用できますが、必ずしもそうする必要はありません。

ENTRY ディレクティブによって設定されたエントリポイント

イメージにはエントリポイントに設定できる箇所は数多くありますが、そこから 1 つを選択します。 1 つのイメージ内で使用できるエントリポイントは 1 つだけです。

アセンブラファイルで ENTRY ディレクティブを使用して、オブジェクト内にエントリポイントを作成します。 組み込みシステムの場合、一般的に、このディレクティブはプロセッサ例外ベクタ(RESET、IRQ、FIQ など)経由で開始されるコードをマークするために使用されます。

このディレクティブでは、ENTRY キーワードを使用して、リンカによって未使用セクションが削除されるときに残しておく出力コードセクションをマークすることにより、そのセクションを残しておくことができます。

C や C++ で記述されたプログラムの場合、C ライブラリの __main() 関数もエントリポイントとなります。

組み込みイメージがローダによって使用される場合には、そのイメージのヘッダ内に 1 つの初期エントリポイントが指定されている必要があります。 エントリポイントを選択するには、--entry コマンドラインオプションを使用します。

Show/hide関連項目

タスク
参照

『リンカリファレンス』

『アセンブラリファレンス』

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0474GJ
Non-ConfidentialID051612