10.49 __attribute__((section("name"))) 関数属性

section 関数属性を使用すると、イメージの異なるセクションにコードを配置できます。

この関数属性は、ARM コンパイラがサポートする GNU コンパイラ拡張機能です。

サンプル

以下のサンプルでは、Function_Attributes_section_0 は、.text ではなく、RO セクション new_section に置かれます。
void Function_Attributes_section_0 (void) 
    __attribute__((section ("new_section")));
void Function_Attributes_section_0 (void)
{
    static int aStatic =0;
    aStatic++;
}
以下のサンプルでは、section 関数属性は、 #pragma arm section 設定をオーバーライドします。
#pragma arm section code="foo"
  int f2()
  {
      return 1;
  }                                  // into the 'foo' area
  __attribute__((section ("bar"))) int f3()
  {
      return 1;
  }                                  // into the 'bar' area
  int f4()
  {
      return 1;
  }                                  // into the 'foo' area
#pragma arm section
関連する参考文書
10.79 #pragma arm section [section_type_list]
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.