| |||
Home > 컴파일러 관련 기능 > Pragma > #pragma arm section [ | |||
이 pragma는 후속 함수나 개체에 섹션 이름을 사용하도록 지정합니다. 여기에는 컴파일러가 초기화를 위해 생성하는 익명 개체의 정의가 포함됩니다.
#pragma arm section의 대체 방법으로 함수나 변수에 대해 __attribute__((section(..)))를
사용할 수 있습니다.
#pragma arm section [section_sort_list]
인수 설명:
section_sort_list후속 함수나 개체에 사용할 선택적 섹션 이름 목록을 지정합니다.
이 옵션은 다음 사항에 영향을 주지 않습니다.
인라인 함수 및 해당 지역 정적 변수
템플릿 인스턴스 생성 및 해당 지역 정적 변수
사용하지 않는 변수 및 함수 제거. 그러나 #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