7.2.9 __at セクションの手動配置

必要に応じて、__at セクションの配置を直接制御できます。

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

__at セクションは、位置非依存の実行領域では使用できません。
以下の例には、読み出し専用セクション .ARM.__at_0x2000 と読み出し-書き込みセクション .ARM.__at_0x4000 の配置を示しています。手動モードでは、ロード領域と実行領域は自動的に作成されません。 __at セクションを実行領域に配置できない場合、エラーが生成されます。
// RO 変数を .ARM.__at_0x2000 という名前のセクションに配置する
const int FOO __attribute__((section(".ARM.__at_0x2000"))) = 100;
// RW 変数を .ARM.__at_0x4000 という名前のセクションに配置する
int bar __attribute__((section(".ARM.__at_0x4000")));
LR1 0x0
{
    ER_RO 0x0 0x2000
    {
        *(+RO)               ; +RO によって .ARM.__at_0x0000 が選択される
    }
    ER_RO2 0x2000
    {
        *(.ARM.__at_0x02000)  ; .ARM.__at_0x2000 という名前のセクションによって
                              ; .ARM.__at_0x2000 が選択される
    }
    ER2 0x4000
    {
        *(+RW +ZI)           ; .+RW によって .ARM.__at_0x4000 が選択される
    }
}
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.