非機密扱い | ![]() | ARM DUI0474JJ | ||
| ||||
ホーム > armlink によるシンボルのアクセスと管理 > イメージシンボル |
イメージシンボルは、単純イメージを作成するためにスキャッタロードを使用しない場合にリンカによって生成されます。
以下の表にイメージシンボルを示します。
表 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()
を再実装して、ヒープとスタックの境界を設定する。