7.19 特定のアドレスに __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 セクションが自動的に割り当てられます。このオプションはデフォルトです。オーバーレイを使用している場合、 --autoat を使って __at セクションを配置することはできません。

関連する概念
7.11 特定アドレスへの関数とデータの配置方法
7.18 __attribute__((section("name"))) を使用したコードとデータの配置
7.20 __at セクションの配置に関する制限
7.21 __at セクションの自動配置
7.22 __at セクションの手動配置
7.23 __at セクションを使用したフラッシュメモリでのキーの配置
関連する作業
7.24 __at セクションを使用したペリフェラルレジスタに対する構造のマッピング
関連する参考文書
12.10 --autoat、--no_autoat
関連情報
__attribute__((section("name"))) 関数属性
__attribute__((at(address))) 変数属性
__attribute__((section("name"))) 変数属性
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.