5.2.4. 실행 영역 설명

실행 영역에는 다음 구성요소가 있습니다.

Figure 5.7에서는 일반적인 실행 영역 설명의 구성요소를 보여 줍니다.

Figure 5.7. 실행 영역 설명의 구성요소

BNF 구문은 다음과 같습니다.

execution_region_description ::= 

  exec_region_name (base_address | "+" offset) [attribute_list] [max_size | "-" length]
        "{" 
            input_section_description* 
        "}"

인수 설명:

exec_region_name

실행 영역을 명명합니다.

base_address

영역의 개체가 링크될 주소를 지정합니다. base_address는 워드로 정렬되어야 합니다.

+offset

기본 주소가 선행 실행 영역의 끝을 벗어나는 offset 바이트라고 설명합니다. offset의 값은 4로 나눈 나머지가 0이어야 합니다.

선행 실행 영역이 없는 경우(즉, 로드 영역의 첫 번째 실행 영역인 경우) +offset은 기본 주소가 로드 영역을 포함하는 기준 뒤의 offset 바이트에서 시작됨을 의미합니다.

+offset 형식이 사용되고 주변 로드 영역에 RELOC 특성이 있으면 실행 영역이 RELOC 특성을 상속합니다. 그러나 고정 base_address가 사용되는 경우 이후에 offset이 나타나도 RELOC 특성이 상속되지 않습니다.

attribute_list

이 옵션은 실행 영역 내용의 속성을 지정합니다.

ABSOLUTE

절대 주소. 영역의 실행 주소는 기준 지정자로 지정됩니다.

PI

위치 독립적

OVERLAY

겹쳐짐

FIXED

고정 주소. 영역의 로드 주소 및 실행 주소는 모두 기준 지정자로 지정됩니다(영역은 루트 영역임). 자세한 내용은 루트 실행 영역 만들기를 참조하십시오. 기준 지정자는 절대 기본 주소 또는 +0의 오프셋이어야 합니다.

ALIGN alignment

실행 영역의 정렬 제한을 4에서 alignment로 늘립니다. alignment는 2의 양의 제곱이어야 합니다. 실행 영역에 base_address가 있으면 alignment로 정렬되어야 합니다. 실행 영역에 +offset이 있으면 링커에서 영역의 계산된 기본 주소를 alignment 단위로 정렬합니다.

EMPTY

실행 영역에서 주어진 길이의 빈 메모리 블록(일반적으로 힙이나 스택에서 사용)을 예약합니다. 자세한 내용은 빈 영역 예약을 참조하십시오.

ZEROPAD

0으로 초기화된 섹션은 0으로 채워진 블록으로 ELF 파일에 작성되므로 런타임에 0으로 채워질 필요가 없습니다.

시뮬레이션과 같은 특정 상황에서는 0으로 초기화되는 루프에서 긴 시간을 보내는 것보다 이 특성을 사용하는 것이 유용합니다.

PADVALUE

패딩의 값을 정의합니다. PADVALUE를 지정하면 값을 제공해야 합니다. 예를 들면 다음과 같습니다.

EXEC 0x10000 PADVALUE 0xffffffff EMPTY ZEROPAD 0x2000

이 값을 사용하면 0xffffffff로 가득 차고 크기가 0x2000인 영역이 만들어집니다.

PADVALUE의 크기는 1워드여야 합니다. 로드 영역의 PADVALUE 특성은 무시됩니다.

FILL

값이 포함된 링커 생성 영역을 만듭니다. FILL을 지정하면 값을 제공해야 합니다 (예: FILL 0xffffffff). FILL 특성은 EMPTY ZEROPAD PADVALUE 조합을 대체합니다.

시뮬레이션과 같은 특정 상황에서는 0으로 초기화되는 루프에서 긴 시간을 보내는 것보다 이 특성을 사용하는 것이 유용합니다.

NOCOMPRESS

압축하면 안 됩니다.

UNINIT

0으로 초기화되면 안 됩니다.

max_size

영역에 max_size 바이트보다 큰 값이 할당된 경우 오류를 생성하도록 링커에 지시하는 선택적 숫자입니다.

-length

길이가 음수 값으로 제공되면 base_address는 영역의 마지막 주소로 지정됩니다. 일반적으로 EMPTY와 함께 사용되어 메모리에서 아래쪽으로 늘어나는 스택을 나타냅니다. 자세한 내용은 빈 영역 예약을 참조하십시오.

input_section_description

입력 섹션의 내용을 지정합니다. 자세한 내용은 입력 섹션 설명을 참조하십시오.

실행 영역의 속성을 지정하는 경우 다음 사항에 유의해야 합니다.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0206HK
Non-Confidential