5.2.3. 로드 영역 설명

로드 영역에는 다음 구성요소가 있습니다.

Figure 5.6은 일반적인 로드 영역 설명의 구성요소를 보여줍니다.

Figure 5.6. 로드 영역 설명의 구성요소

로드 영역 설명의 구성요소

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

load_region_description ::=

  load_region_name  (base_address  | ("+" offset)) [attribute_list] [ max_size ]
       "{"
          execution_region_description+ 
       "}"	

다음은 각 요소에 대한 설명입니다.

load_region_name

링커는 각 실행 영역에 대해 Load$$exec_region_name$$base 심볼을 생성합니다. 이 심볼은 실행 영역의 로드 주소를 포함합니다. 자세한 내용은 실행 영역 설명을 참조하십시오. 그러나 load_region_name은 각 영역을 식별하는 데만 사용됩니다. 즉, Load$$region_name 심볼을 생성하는 데는 사용되지 않습니다.

Note

디버거에서 사용하기 위해 만들어지는 이미지에서는 디버거가 영역의 로드 주소에서 영역을 로드해야 하기 때문에 각 영역의 고유한 기본 주소가 필요합니다. 로드 영역 주소를 겹치면 이미지의 일부가 덮어쓰입니다.

그러나 로더 또는 운영 체제는 겹치는 위치 독립적 영역을 올바르게 로드할 수 있습니다. 하나 이상의 위치 독립적 영역은 다른 주소로 자동으로 이동됩니다.

base_address

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

+offset

기본 주소가 선행 로드 영역의 끝을 벗어나는 offset 바이트라고 설명합니다. offset의 값은 4로 나눈 나머지가 0이어야 합니다. 이것이 첫 번째 로드 영역이면 +offset은 기본 주소가 0 뒤의offset 바이트로 시작함을 의미합니다.

attribute_list

다음과 같이 로드 영역 내용의 속성을 지정합니다.

ABSOLUTE

절대 주소

PI

위치 독립적

RELOC

재배치 가능

OVERLAY

겹쳐짐

NOCOMPRESS

압축하면 안 됨

ABSOLUTE, PI, RELOCOVERLAY 특성 중 하나만 지정할 수 있습니다. 기본 로드 영역 특성은 ABSOLUTE입니다.

PI, RELOC 또는 OVERLAY 특성 중 하나를 가진 로드 영역에는 겹치는 주소 영역이 있을 수 있습니다. 링커에서 ABSOLUTE 로드 영역에 겹친 주소 범위를 사용하면 오류가 발생합니다.

OVERLAY 키워드를 사용하면 동일한 주소에 여러 실행 영역이 있을 수 있습니다. ARM은 RVCT에서 오버레이 메커니즘을 제공하지 않습니다. 따라서 동일한 주소에서 여러 실행 영역을 사용하려면 자체 오버레이 관리자를 제공해야 합니다.

RW 데이터 압축은 기본적으로 사용됩니다. NOCOMPRESS 키워드를 사용하면 최종 이미지에서 로드 영역은 압축하면 안 된다는 것을 지정할 수 있습니다.

max_size

로드 영역의 최대 크기를 지정합니다. 선택적 max_size 값이 지정되면, armlink는 영역에 max_size바이트 이상이 할당된 경우 오류를 생성합니다.

execution_region_description

실행 영역 이름, 주소 및 내용을 지정합니다. 자세한 내용은 실행 영역 설명을 참조하십시오.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential