6.4.2 イメージシンボル

イメージシンボルは、単純イメージを作成するためにスキャッタロードを使用しない場合にリンカによって生成されます。

以下の表にイメージシンボルを示します。

表 6-4 イメージシンボル

シンボル セクションの種類 説明
Image$$RO$$Base 出力
RO 出力セクションの開始アドレス。
Image$$RO$$Limit 出力 RO 出力セクション末尾の次にあるバイトのアドレス。
Image$$RW$$Base 出力 RW 出力セクションの開始アドレス
Image$$RW$$Limit 出力 ZI 出力セクション末尾の次にあるバイトのアドレス。(RW 領域の末尾ではなく、ZI 領域の末尾を選択しているのは、従来のコードとの互換性を維持するためです)。
Image$$ZI$$Base 出力 ZI 出力セクションの開始アドレス。
Image$$ZI$$Limit 出力 ZI 出力セクション末尾の次にあるバイトのアドレス。
スキャッタファイルを使用する場合、イメージシンボルは定義されません。コードからこうしたシンボルのいずれかを参照する場合は、弱参照として処理する必要があります。
__user_setup_stackheap() の標準実装では、シンボル Image$$ZI$$Limit の値が使用されます。したがって、スキャッタファイルを使用する場合は、スタックとヒープを手動で配置する必要があります。次のいずれかの方法で行います。
  • スキャッタファイルで行う、次のいずれかの方法を使用します。
    • スタック領域 ARM_LIB_STACK とヒープ領域 ARM_LIB_HEAP を個別に定義します。
    • スタックとヒープの両方を組み合わせた領域を ARM_LIB_STACKHEAP として定義します。
  • __user_setup_stackheap() を再実装して、ヒープとスタックの境界を設定する。
関連する概念
3.2 単純イメージ
3.8 弱参照と定義
関連する作業
7.1.4 スキャッタファイルを使用したスタックとヒープの指定
関連する参考文書
7.1.3 スキャッタロード時に定義されないリンカ定義シンボル
関連情報
C および C++ のスタックの使用
RVCT v2.2 と RVCT v3.0 の間での C および C++ ライブラリの変更点。
__user_setup_stackheap()
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.