| |||
| Home > 이미지 기호 액세스 > 링커 정의 기호 액세스 > 섹션 관련 기호 | |||
명령 행 옵션을 사용하여 단순 이미지를 만드는 경우 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. 섹션 관련 기호
| 기호 | 섹션 유형 | 설명 |
|---|---|---|
| 입력 | 이라는
통합 섹션 시작의 주소 |
| 입력 | 이라는
통합 섹션의 길이 (바이트) |
| 입력 | 이라는
통합 섹션의 끝을 초과하는 바이트의 주소 |