2.1.2. armlink의 출력

armlink의 호출이 성공한 경우 출력은 다음 중 하나입니다.

단순 이미지의 경우, ELF 실행 가능 파일에는 이미지의 RO 및 RW 출력 섹션에 대략적으로 해당하는 세그먼트가 포함됩니다. ELF 실행 가능 파일에는 이미지 출력 섹션을 포함하는 ELF 섹션도 있습니다.

fromelf를 사용하여 ELF 실행 가능 형식의 실행 가능 이미지를 다른 파일 형식으로 변환할 수 있습니다. 자세한 내용은 Chapter 8 fromelf 사용을 참조하십시오.

실행 가능 이미지 생성

링커를 사용하여 실행 가능 이미지를 생성하면 해당 이미지는

  • 입력 오브젝트 파일 사이의 심볼 참조를 확인합니다.

  • 라이브러리에서 오브젝트 모듈을 추출하여 다른 방식으로는 충족되지 않는 심볼 참조를 충족시킵니다.

  • 해당 특성 및 이름에 따라 입력 섹션을 정렬하고 유사한 특성과 이름을 가진 섹션을 연속적 청크로 병합합니다.

  • 사용하지 않는 섹션을 제거합니다.

  • 중복되는 공통 그룹과 공통 코드, 데이터 및 디버그 섹션을 제거합니다.

  • 제공된 그룹화 및 배치 정보에 따라 오브젝트 조각을 메모리 영역으로 구성합니다.

  • 재배치 가능한 값을 재배치합니다.

  • 실행 가능 이미지를 생성합니다.

로드 영역은 일반적으로 리셋 시 시스템 메모리 맵, 예를 들어 ROM에 있거나 이미지가 디버거에 의해 타겟으로 로드된 후에 존재합니다. 그러나 이미지 실행의 일부로, 일부 영역이 영역의 로드 주소에서 실행 주소로 이동해야 할 수 있습니다. 따라서 이미지의 메모리 맵에는 다음과 같은 별개의 뷰가 있습니다.

로드 뷰

프로그램 및 데이터가 먼저 로드될 경우 메모리 뷰

실행 뷰

코드가 일반적인 실행 위치로 이동된 후 메모리 뷰

메모리 맵에 대해 설명할 경우

  • 루트 영역이라는 용어는 로드 및 실행 주소가 동일한 영역을 설명하는 데 사용합니다.

  • 로드 영역은 ELF 세그먼트에 해당합니다.

이러한 계층에 대한 자세한 내용은 이미지 구조체 지정을 참조하십시오.

부분적으로 링크된 오브젝트 생성

링커를 사용하여 부분적으로 링크된 오브젝트를 생성하면 해당 오브젝트는

  • 중복되는 디버그 섹션의 복사본을 제거합니다.

  • 심볼 테이블의 크기를 최소화합니다.

  • 미확인 참조를 미확인으로 둡니다.

  • Comdat 그룹을 병합합니다.

  • 이후 링크 단계에 입력으로 사용할 수 있는 오브젝트를 생성합니다.

Note

부분적 링크를 사용하는 경우 스캐터 로딩 설명 파일의 이름별로 구성요소 오브젝트를 참조할 수 없습니다.

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