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

イメージ内のエントリポイントは、プログラムの実行開始位置です。イメージには複数のエントリポイントがありますが、リンク時には 1 つのエントリポイントだけを指定できます。

また、すべての ELF ファイル内にエントリポイントを指定する必要があるわけではありません。1 つの ELF ファイル内に複数のエントリポイントを指定することはできません。

エントリポイントの種類

エントリポイントには以下の 2 つの種類があります。

初期エントリポイント

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

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

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

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

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

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

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

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

関連する概念
3.10 イメージの初期エントリポイント
関連する参考文書
12.50 --entry=location
関連情報
ENTRY
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.