4.6.3. #pragma arm section [section_sort_list]

이 pragma는 후속 함수나 개체에 섹션 이름을 사용하도록 지정합니다. 여기에는 컴파일러가 초기화를 위해 생성하는 익명 개체의 정의가 포함됩니다.

Note

#pragma arm section의 대체 방법으로 함수나 변수에 대해 __attribute__((section(..)))를 사용할 수 있습니다.

구문

#pragma arm section [section_sort_list]

인수 설명:

section_sort_list

후속 함수나 개체에 사용할 선택적 섹션 이름 목록을 지정합니다.

사용법

ARM 링커와 함께 스캐터 로딩 설명 파일을 사용하여 명명된 섹션을 메모리의 특정 주소에 배치하는 방식을 제어할 수 있습니다.

제한

이 옵션은 다음 사항에 영향을 주지 않습니다.

  • 인라인 함수 및 해당 지역 정적 변수

  • 템플릿 인스턴스 생성 및 해당 지역 정적 변수

  • 사용하지 않는 변수 및 함수 제거. 그러나 #pragma arm section을 사용하면 사용하는 함수나 변수와 동일한 섹션에 있기 때문에 유지되는 함수나 변수를 링커가 제거할 수 있습니다.

  • 개체 파일에 정의가 기록되는 순서

예제

int x1 = 5;                     // in .data (default)
int y1[100];                    // in .bss (default)
int const z1[3] = {1,2,3};      // in .constdata (default)

#pragma arm section rwdata = "foo", rodata = "bar"

int x2 = 5;                     // in foo (data part of region)
int y2[100];                    // in .bss
int const z2[3] = {1,2,3};      // in bar
char *s2 = "abc";               // s2 in foo, "abc" in .conststring

#pragma arm section rodata
int x3 = 5;                     // in foo
int y3[100];                    // in .bss
int const z3[3] = {1,2,3};      // in .constdata
char *s3 = "abc";               // s3 in foo, "abc" in .conststring

#pragma arm section code = "foo"
int add1(int x)                   // in foo (code part of region)
{
    return x+1;
} 

#pragma arm section code

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential