3.1 ARM ELF イメージの構造

ARM ELF イメージにはセクション、領域、セグメントが含まれ、各リンクステージにはイメージの異なるビューがあります。

イメージの構造は以下によって定義されます。

  • イメージを構成する領域と出力セクションの数。

  • イメージがロードされるときの、上記領域とセクションのメモリ内における位置。

  • イメージが実行されるときの、上記領域とセクションのメモリ内における位置。

各リンクステージには、以下のさまざまなイメージのビューがあります。

ELF オブジェクトファイルビュー(リンカの入力)

ELF オブジェクトファイルビューは、入力セクションで構成されます。ELF オブジェクトファイルには、以下のファイルがあります。

  • 他のオブジェクトファイルとリンクして、実行可能ファイルまたは共有オブジェクトファイルを作成するのに適したコードとデータを保持する再配置可能ファイル

  • 以下の場合にコードおよびデータを保持する共有オブジェクトファイル。

リンカビュー

リンカには、オーバーレイ、位置非依存、および再配置可能なプログラム要素(コードまたはデータ)の有無が異なる、プログラムのアドレス空間のビューが 2 つあります。

  • プログラム要素のロードアドレスは、プログラムローダ、ダイナミックリンカ、デバッガなどの外部エージェントによって ELF ファイルのプログラム要素がコピーされるときに、そのコピー先として想定されるターゲットアドレスです。これは、そのプログラム要素の実行アドレスと異なる場合があります。

  • プログラム要素の実行アドレスは、リンカがプログラムの実行に参加するときにそのプログラム要素が存在すると想定されるターゲットアドレスです。

プログラム要素が位置非依存または再配置可能である場合、実行アドレスが実行中に変更される可能性があります。

ELF イメージファイルビュー(リンカの出力)

ELF イメージファイルビューは、プログラムセグメントと出力セクションで構成されます。

  • プログラムセグメントに対応するロード領域。

  • 実行領域には、以下のような出力セクションが 1 つ以上含まれます。

    • RO セクション。
    • RW セクション。
    • XO セクション。
    • ZI セクション

ロード領域は、1 つ以上の実行領域で構成されます。

armlink では、プログラムセグメントの最大サイズは 2GB です。

メモリビューの説明では、以下の用語に注意して下さい。

  • ルート領域とは、ロードアドレスと実行アドレスが同一の領域を意味します。

  • ロード領域と ELF セグメントは同じものです。

以下の図には、各リンクステージにおけるビューの関係を示しています。

図 3-1 セクション、領域、およびセグメントの関係
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

関連する概念
3.2 入力セクション、出力セクション、領域、およびプログラムセグメント
3.3 イメージのロードビューと実行ビュー
関連情報
64 ビットのリンカへの変更
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.