__at セクションの手動配置

--no_autoat コマンドラインオプションを使用する場合は、標準的なセクション配置規則を使用して、__at セクションを配置できます。

Note

__at セクションは、位置非依存の実行領域では使用できません。

以下の例には、読み出し専用セクション .ARM.__at_0x2000 と読み出し-書き込みセクション .ARM.__at_0x4000 の配置を示しています。 手動モードでは、ロード領域と実行領域は自動的に作成されません。 __at セクションを実行領域に配置できない場合、エラーが生成されます。

Example 22. C または C++ コードでの変数の配置

// RO 変数を .ARM.__at_0x2000 という名前のセクションに配置する
const int FOO __attribute__((section(".ARM.__at_0x2000"))) = 100;

// RW 変数を .ARM.__at_0x4000 という名前のセクションに配置する
int bar __attribute__((section(".ARM.__at_0x4000")));

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

LR1 0x0
{
    ER_RO 0x0 0x2000
    {
        *(+RO)               ; +RO によって .ARM.__at_0x0 が選択される
    }
    ER_RO2 0x2000
    {
        *(.ARM.__at_0x2000)  ; .ARM.__at_0x2000 によって .ARM.__at_0x2000 が選択される
    }
    ER2 0x4000
    {
        *(+RW +ZI)           ; +RW によって .ARM.__at_0x4000 が選択される
    }
}

Show/hide関連項目

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