__at を使用したペリフェラルレジスタに対する構造の配置

初期化されていない変数をペリフェラルレジスタに配置するには、ZI __at セクションを使用します。 レジスタが 0x10000000 で使用できると仮定して、.ARM.__at_0x10000000 という ZI __at セクションを定義します。 以下に例を示します。

int foo __attribute__((section(・ARM.__at_0x10000000・, zero_init));

以下の例には、ZI __at セクションの手動配置を記述したスキャッタファイルを示しています。

Example 27. ZI __at セクションの手動配置

ER_PERIPHERAL 0x10000000 UNINIT
{
    *(.ARM.__at_0x10000000)
}

自動配置を使用する場合、0x10000000 付近の実行領域が他にないという想定で、リンカによって UNINIT 属性の領域が 0x10000000 に自動的に作成されます。 UNINIT 属性によって、初期化されていないデータまたはメモリマップされた I/O を含む実行領域が作成されます。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0474GJ
Non-ConfidentialID051612