7.2.6 特定のアドレスに __at セクションの配置

セクションを配置する必要があるアドレスをエンコードした特別な名前をセクションに付けることができます。

特別な名前は以下のように指定できます。
.ARM.__at_address
address がセクションの必須アドレスの場合、8 桁の16 進数に正規化されています。16 進数値または 10 進数値で指定することができます。 .ARM.__at_ address の形式のセクションは、省略形 __at で表します。
コンパイラで変数を __at セクションに割り当てるには、以下の方法を使用します。
  • __attribute__((section("name")))
  • 属性 __at を使用してセクション名を自動的に設定します。
C または C++ コードでの __at セクションへの変数の割り当て
// variable1.ARM.__AT_0x00008000 int variable1 __attribute__((at(0x8000))) = 10; という名前のセクションに配置する
// variable2.ARM.__at_0x8000 という名前のセクションに配置する
int variable2 __attribute__((section(".ARM.__at_0x8000"))) = 10;

__attribute__((at(address))) を使用する場合、 address を表す __at セクション名の部分は、8 桁の 16 進数値に正規化されます。セクション名は、スキャッタファイル内で名前を使用してセクションを照合する場合にのみ有意です。オーバーレイなしの場合、--autoat コマンドラインオプションを使用すると、リンカによって __at セクションが自動的に割り当てられます。このオプションはデフォルトです。オーバーレイを使用している場合、__at セクションの配置に --autoat は使用できません。

セクション名は、スキャッタファイル内で名前を使用してセクションを照合する場合にのみ有意です。オーバーレイなしの場合、--autoat コマンドラインオプションを使用すると、リンカによって __at セクションが自動的に割り当てられます。このオプションはデフォルトです。オーバーレイを使用している場合、__at セクションの配置に --autoat は使用できません。
関連する概念
7.2.5 __attribute__((section("name"))) を使用したコードとデータの配置
7.2.7 __at セクションの配置に関する制限
7.2.8 __at セクションの自動配置
7.2.9 __at セクションの手動配置
7.2.10 __at セクションを使用したフラッシュメモリでのキーの配置
関連する作業
特定アドレスへの関数とデータの配置
7.2.11 __at セクションを使用したペリフェラルレジスタに対する構造のマッピング
関連する参考文書
12.10 --autoat、--no_autoat
関連情報
__attribute__((section("name"))) 関数属性
__attribute__((at(address))) 変数属性
__attribute__((section("name"))) 変数属性
Base Platform ABI for the ARM Architecture
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.