7.2.11 __at セクションを使用したペリフェラルレジスタに対する構造のマッピング

スキャッタロードを使用してペリフェラルレジスタに対して構造を配置できます。

初期化されていない変数をペリフェラルレジスタに配置するには、ZI __at セクションを使用します。レジスタが 0x10000000 で使用できると仮定して、.ARM.__at_0x10000000 という ZI __at セクションを定義します。例えば、
int foo __attribute__((section(".ARM.__at_0x10000000"), zero_init));
以下の例は、ZI __at セクションの手動配置を記述したスキャッタファイルを示しています。
ER_PERIPHERAL 0x10000000 UNINIT
{
    *(.ARM.__at_0x10000000)
}
自動配置を使用する場合、 0x10000000 付近の実行領域が他にないという想定で、リンカによって UNINIT 属性の領域が 0x10000000 に自動的に作成されます。UNINIT 属性によって、初期化されていないデータまたはメモリマップされた I/O を含む実行領域が作成されます。
関連する概念
7.2.6 特定のアドレスに __at セクションの配置
7.2.8 __at セクションの自動配置
7.2.9 __at セクションの手動配置
8.4 実行領域の記述
関連する参考文書
8.4.3 実行領域の属性
関連情報
__attribute__((section("name"))) 変数属性
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.