4.2.2.  섹션 관련 심볼

명령 행 옵션을 사용하여 단순 이미지를 만드는 경우 Table 4.2에 표시된 출력 섹션 심볼이 생성됩니다. 단순 이미지에는 세 개의 실행 영역을 생성하는 세 가지 출력 섹션(RO, RW 및 ZI)이 있습니다. 이미지에 있는 모든 입력 섹션에 대해서 링커는 Table 4.2에 표시된 입력 심볼을 생성합니다.

링커는 실행 영역 안에 있는 섹션을 먼저 RO, RW 또는 ZI 특성에 따라 정렬한 다음 이름에 따라 정렬합니다. 그러므로 예를 들어 모든 .text 섹션은 하나의 연속되는 블록에 배치됩니다. 특성과 이름이 같은 섹션들의 연속적 블록은 통합 섹션으로 알려져 있습니다.

Table 4.2. 섹션 관련 링커 심볼

심볼섹션 타입설명
Image$$RO$$Base출력

RO 출력 섹션 시작의 주소

Image$$RO$$Limit출력RO 출력 섹션의 끝을 초과하는 첫 번째 바이트의 주소
Image$$RW$$Base출력RW 출력 섹션 시작의 주소
Image$$RW$$Limit출력ZI 출력 섹션의 끝을 초과하는 바이트의 주소. (RW 영역의 끝보다는 ZI 영역의 끝을 선택하면 레거시 코드와의 호환성이 유지됩니다.)
Image$$ZI$$Base출력ZI 출력 섹션 시작의 주소
Image$$ZI$$Limit출력ZI 출력 섹션의 끝을 초과하는 바이트의 주소
SectionName$$Base입력SectionName이라 부르는 통합 섹션 시작의 주소
SectionName$$Length입력SectionName이라는 통합 섹션의 길이(바이트)
SectionName$$Limit입력SectionName이라는 통합 섹션의 끝을 초과하는 바이트의 주소

Note

코드에서 입력 섹션 심볼을 참조하는 경우, 이미지에 있는 이름이 같은 모든 입력 섹션이 이미지 메모리 맵에 연속적으로 배치되도록 의도한 것으로 가정됩니다. 스캐터 로딩 설명에서 이러한 입력 섹션을 비연속적으로 배치한 경우 링커는 오류를 진단합니다. 비연속적 메모리에서 기본 및 한계 심볼을 사용하면 일반적으로 예상할 수 없고 적절하지 않은 결과가 발생하기 때문입니다.

스캐터 로딩 설명 파일을 사용하면 Table 4.2의 출력 섹션 심볼이 정의되지 않습니다. 코드가 이러한 심볼에 액세스하면 weak 참조로 처리해야 합니다.

__user_initial_stackheap()을 표준으로 구현할 때 Image$$ZI$$Limit의 값을 사용합니다. 그러므로 스캐터 로딩 설명 파일을 사용하는 경우 힙 및 스택 경계를 설정하려면 __user_initial_stackheap()을 다시 구현해야 할 수도 있습니다. 자세한 내용은 Chapter 5 스캐터 로딩 설명 파일 사용을 참조하십시오.

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