この方法は、RW データが起動時に ROM から RAM にコピーされる、ROM ベースの組み込みシステムなどに使用されます。以下の図は、タイプ 2 イメージのロードビューと実行ビューを示します。
このタイプのイメージを作成するには以下のコマンドを使用します。
armlink --ro_base 0x0 --rw_base 0xA000
ロードビュー
ロードビューでは、ROM などに連続して配置された RO 出力セクションおよび RW 出力セクションによって 1 つのロード領域が構成されます。この場合、RO 領域はルート領域となりますが、RW 領域はルート領域ではありません。ロード時には ZI 出力セクションは存在しません。実行時に作成されます。
実行ビュー
実行ビューでは、最初の実行領域に RO 出力セクションが、2 番目の実行領域に RW 出力セクションと ZI 出力セクションが含まれます。
RO 出力セクションを含む領域の実行アドレスとロードアドレスは同じであるため、RO 出力セクションを移動する必要はありません。つまり、このセクションはルート領域になります。
RW 出力セクションを含む領域の実行アドレスとロードアドレスは異なるため、RW 出力セクションはロードアドレスから実行アドレスに(単一ロード領域から 2 番目の実行領域に)移動されます。ZI 実行領域とその出力セクションは、RW 実行領域と隣接して配置されます。
RO 出力セクションのロードアドレスおよび実行アドレスを指定するには、armlink オプション --ro_base address
を使用します。また、RW 出力セクションの実行アドレスを指定するには、--rw_base address
を使用します。--ro_base
オプションを使用してアドレスを指定しない場合、armlink
はデフォルト値
0x8000
を使用します。組み込みシステムの場合、--ro_base
の値には
0x0
を指定するのが一般的です。--rw_base
オプションでアドレスが指定されていない場合、通常は、RW 出力セクションが RO 出力セクションのすぐ上に配置されます(タイプ 1 のイメージと同様)。
ZI 実行領域のベースアドレスを指定するには、--zi_base
コマンドラインオプションを使用します。
注
RW 出力セクションと ZI 出力セクションの実行領域は、ロード領域のどの部分とも重ねることはできません。
実行専用領域を含むイメージのロードビュー
実行専用(XO)セクションを含むイメージは、--ro_base
により指定されたアドレスに XO 出力セクションが配置されます。RO および RW 出力セクションは、XO セクションのすぐ後に連続して配置されます。
実行専用領域を含むイメージの実行ビュー
XO セクションを含むイメージの場合、XO 実行領域は --ro_base
で指定されるアドレスに配置されます。RO 実行領域は、XO 実行領域のすぐ後に連続して配置されます。
--xo_base address
を使用する場合は、XO 実行領域は指定されたアドレスの別のロード領域に配置されます。