6.12 イメージシンボル

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

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

表 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.5 単純イメージのタイプ
3.22 弱参照と定義
関連する作業
7.7 スキャッタファイルを使用したスタックとヒープの指定
関連する参考文書
7.6 スキャッタロード時に定義されないリンカ定義シンボル
関連情報
C および C++ のスタックの使用
RVCT v2.2 と RVCT v3.0 の間での C および C++ ライブラリの変更点
__user_setup_stackheap()
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.