8.3.6 ロード領域に相対アドレス +offset を使用する際の注意事項

ロード領域に対して相対アドレスを使用する際に注意することがあります。

+offset を使用してロード領域のベースアドレスを指定する際は、以下の点に注意して下さい。
  • ZI データを含んだロード領域 LR1 の後に、+offset ロード領域 LR2 が続く場合、LR2 が ZI データとオーバラップします。これを解決するには、 ImageLimit() 関数を使用して、LR2 のベースアドレスを指定します。
  • +offset ロード領域 LR2 は、その直前にあるロード領域 LR1 から属性を継承します。ただし、次の場合を除きます。
    • LR1 に OVERLAY 属性が設定されている。
    • LR2 に明示的な属性が設定されている。
    属性を継承できない場合、ロード領域は属性 ABSOLUTE を取得します。
  • 前の領域に RW データ圧縮が適用された場合、+offset ロード領域と前の領域の間にある ROM イメージにギャップが存在する可能性があります。これは、リンカが前の領域の未圧縮のサイズに基づいて +offset を計算するためです。ただし、このギャップは、RW データがロード時に伸張されるとなくなります。
関連する概念
8.3.4 ロード領域のアドレス属性の継承規則
8.6.5 スキャッタファイルで使用する実行アドレスの組み込み関数
8.4.4 実行領域のアドレス属性の継承規則
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.