2.4.4. スキャッタローディング記述ファイルでのオブジェクトの配置

ほとんどのイメージでは、Example 2.2 に示したように、すべての属性を 1 つにまとめるのではなく、特定のコードセクションとデータセクションの配置を制御します。セクションの配置は、ワイルドカード構文だけに頼るのではなく、記述ファイル内で各オブジェクトを直接指定することによって制御できます。

Note

記述ファイルの実行領域内のオブジェクトの順序が、出力イメージ内のオブジェクトの順序に影響することはありません。各実行領域には、リンカの配置規則で説明したリンカの配置規則が適用されます。

標準的なリンカの配置規則をオーバーライドするには、スキャッタローディングの +FIRST ディレクティブおよび +LAST ディレクティブを使用できます。Example 2.3 は、実行領域の先頭にベクタテーブルを配置するスキャッタローディング記述ファイルを示しています。この例では、vectors.o 内のエリア Vect がアドレス 0x0000 に配置されます。

Example 2.3. セクションの配置

ROM_LOAD 0x0000 0x4000
{
  ROM_EXEC 0x0000 0x4000
  { 
    vectors.o (Vect, +FIRST)
    * (+RO)
  }
  ; more exec regions...
}

スキャッタローディング記述ファイル内でのオブジェクトの配置に関する詳細については、RealView Compilation Tools v3.0 Linker and Utilities Guideを参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential