2.2 ベアメタルリンクモデル

プログラム全体(リアルタイムオペレーティングシステム(RTOS)を含む場合あり)がワンパスでリンクされている従来の組み込み市場に重点を置いています。

ベアメタルシステムのメモリマップ関して、リンカで想定できる内容はほとんどありません。そのため、厳密に制御する必要がある場合は、スキャッタロードメカニズムを使用する必要があります。スキャッタロードでは、イメージのメモリマップの異なる領域は自然アドレスとは異なるアドレスに配置されます。このようなイメージは再配置可能なイメージで、リンカはプログラムアドレスを調整し、外部シンボルへの参照を解決します。
デフォルトでは、リンカはすべての再配置を静的に解決しようとします。ただし、位置非依存イメージまたは再配置可能なイメージを作成することもできます。そうしたイメージは、異なるアドレスから実行し、ロード時または実行時に再配置を解決できます。ダイナミックモデルを使用して、再配置可能なイメージを作成できます。位置非依存イメージはダイナミックモデルを必要としません。
ベアメタルのモデルでは、以下のことができます。
  • スキャッタファイルまたはコマンドラインオプションを使用して再配置可能な領域または位置非依存の領域を識別します。
  • ステアリングファイルを使用してインポートおよびエクスポートできるシンボルを識別します。
このモデルでは、以下のオプションを使用できます。
  • --edit=file_list
  • scatter=file
スキャッタロードを使用しない場合は、以下のオプションを使用できます。
  • --reloc
  • --ro_base=address
  • --ropi
  • --rosplit
  • --rw_base=address
  • --rwpi
  • --split
  • --xo_base=address
  • --zi_base

--xo_base--ropi または --rwpi と組み合わせて使用することはできません。
関連する概念
3.1.4 リンカでイメージのメモリマップを指定する方法
2.4 ベースプラットフォームアプリケーションバイナリインタフェース(BPABI)リンクモデル
11.2 ベースプラットフォームリンクモデルのスキャッタファイルの例
関連する参考文書
12.170 --xo_base=address
12.45 --edit=file_list
12.115 --reloc
12.118 --ro_base=address
12.119 --ropi
12.120 --rosplit
12.122 --rw_base=address
12.123 --rwpi
12.125 --scatter=filename
12.135 --split
12.174 --zi_base=address
章 13 リンカステアリングファイルコマンドリファレンス
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.