4.2.2.  섹션 관련 기호

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

링커에서는 실행 영역 내에서 먼저 RO, RW 또는 ZI 특성에 따라 섹션을 정렬하고 그 다음에는 이름별로 섹션을 정렬합니다. 따라서 모든 .text 섹션은 하나의 연속되는 블록에 배치됩니다. 특성과 이름이 같은 섹션들의 연속적 블록을 통합 섹션이라고 합니다.

이미지 기호

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

__user_initial_stackheap ()의 표준 구현은 Image$$ZI$$Limit의 값을 사용합니다. 따라서 스캐터 로딩 설명 파일을 사용하는 경우 스택 및 힙을 수동으로 배치해야 합니다. 이 작업은 스캐터 설명 파일에서 수행하거나 __user_initial_stackheap ()을 다시 구현하여 힙 및 스택 경계를 설정해 수행할 수 있습니다. 자세한 내용은 Chapter 5 스캐터 로딩 설명 파일 사용을 참조하십시오.

Table 4.4. 이미지 관련 기호 

기호섹션 유형설명
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 출력 섹션의 끝을 초과하는 바이트의 주소

입력 섹션 기호

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

Table 4.5. 섹션 관련 기호 

기호섹션 유형설명
SectionName$$Base입력SectionName 이라는 통합 섹션 시작의 주소
SectionName$$Length입력SectionName 이라는 통합 섹션의 길이 (바이트)
SectionName$$Limit입력SectionName 이라는 통합 섹션의 끝을 초과하는 바이트의 주소

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0206IK
Non-Confidential