7.41 スキャッタファイルを使用した ELF のマッピング

ELF にスキャッタファイルコンポーネントがどのようにマップされるかを示します。

単純イメージの場合、ELF 形式の実行可能なファイルには、以下のセグメントが含まれます。

  • PT_LOAD タイプの 1 つの ELF プログラムセグメントで表されるロード領域。

  • 以下の 1 つまたは複数の ELF セクションで表される実行領域。

    • XO。

    • RO。

    • RW。

    • ZI。

例えば、以下のようなスキャッタファイルがあるとします。

LOAD 0x8000 {     EXEC_ROM +0     {         *(+RO)     }     RAM +0     {         *(+RW,+ZI)     }     HEAP +0x100 EMPTY 0x100     {     }     STACK +0 EMPTY 0x400     {     } }

このスキャッタファイルでは、ロード領域のアドレスが 0x8000 である、PT_LOAD タイプの 1 つのプログラムセグメントが作成されます。

EXEC_ROM の内容を表す SHT_PROGBITS タイプの 1 つの出力セクションが作成されます。RAM を表す 2 つの出力セクションが作成されます。1 つは SHT_PROGBITS タイプで、初期化された読み出し/書き込みデータを含みます。もう 1 つは SHT_NOBITS タイプで、ゼロで初期化されたデータについての記述を含みます。

ヒープとスタックは、ELF ファイルの SHT_NOBITS セクションに記述されます。

イメージ内のスキャッタロードが行われたセクションを確認するには、以下の fromelf コマンドを入力します。

fromelf --text -v my_image.axf

シンボルテーブルを表示するには、以下のコマンドを入力します。

fromelf --text -s -v my_image.axf

以下は、fromelf の出力例で、 LOADEXEC_ROMRAMHEAP、および STACK の各セクションが示されています。

… ======================================================================== ** Program header #0     Type          :PT_LOAD (1)     File Offset   :52 (0x34)     Virtual Addr  :0x00008000     Physical Addr :0x00008000     Size in file  :764 bytes (0x2fc)     Size in memory:2140 bytes (0x85c)     Flags         :PF_X + PF_W + PF_R + PF_ARM_ENTRY (0x80000007)     Alignment     :4 ======================================================================== ** Section #1     Name        :EXEC_ROM
…     Addr        :0x00008000     File Offset :52 (0x34)     Size        :740 bytes (0x2e4)
… ==================================== ** Section #2     Name        :RAM
…     Addr        :0x000082e4     File Offset :792 (0x318)     Size        :20 bytes (0x14)
… ==================================== ** Section #3     Name        :RAM
…     Addr        :0x000082f8     File Offset :812 (0x32c)     Size        :96 bytes (0x60)
… ==================================== ** Section #4     Name        :HEAP
…     Addr        :0x00008458     File Offset :812 (0x32c)     Size        :256 bytes (0x100)
… ==================================== ** Section #5     Name        :STACK
…     Addr        :0x00008558     File Offset :812 (0x32c)     Size        :1024 bytes (0x400)
…
関連する概念
7.1 スキャッタロードについて
7.4 メモリマップが単純なスキャッタロードイメージ
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.