RealView ® CompilationTools 링커 및 유틸리티 설명서

버전 3.0


Table of Contents

서문
설명서 정보
대상 독자
설명서 사용
표기 규칙
추가 정보
사용자 의견
RealView Compilation Tools에 대한 사용자 의견
설명서에 대한 사용자 의견
1. 소개
1.1. RVCT 개요
1.1.1. 예제 사용
1.2. 링커 및 유틸리티 정보
1.2.1. armlink
1.2.2. fromelf
1.2.3. armar
1.2.4. 레거시 오브젝트 및 라이브러리와의 호환성
2. 링커 명령 구문
2.1. Armlink 개요
2.1.1. armlink에 대한 입력
2.1.2. armlink의 출력
2.1.3. 명령 행 옵션 순서 지정
2.1.4. 환경 변수를 통한 명령 행 옵션 지정
2.1.5. 링커 옵션의 요약
2.2. armlink 명령 구문
2.2.1. 도움말 및 정보 액세스
2.2.2. 입력 파일 목록 지정
2.2.3. 링커 동작 제어
2.2.4. 출력 타입 및 출력 파일 이름 지정
2.2.5. 이미지에 대한 메모리 맵 정보지정
2.2.6. 디버그 정보 제어
2.2.7. 이미지 내용 제어
2.2.8. 비니어 생성 제어
2.2.9. 바이트 주소 지정 모드 지정
2.2.10. 이미지 관련 정보 생성
2.2.11. 링커 진단 제어
2.2.12. via 파일 사용
2.2.13. 기타
2.2.14. 레거시 오브젝트와의 호환성 제어
3. 기본 링커 기능 사용
3.1. 이미지 구조체 지정
3.1.1. 개체 및 이미지의 구성 요소
3.1.2. 이미지의 로드 뷰 및 실행 뷰
3.1.3. 이미지 메모리 맵 지정
3.1.4. 이미지 엔트리 포인트
3.2. 섹션 배치
3.2.1. 특성별 입력 섹션 정렬
3.2.2. FIRST 및 LAST를 사용하여섹션 배치
3.2.3. 섹션 정렬
3.2.4. Thumb 코드를 포함하는 실행 영역 정렬
3.3. 최적화 및 수정
3.3.1. 공통 디버그 섹션 제거
3.3.2. 공통 그룹 또는 섹션 제거
3.3.3. 사용하지 않는 섹션 제거
3.3.4. 사용하지 않는 함수 제거
3.3.5. 링커 피드백
3.3.6. RW 데이터 압축
3.3.7. 비니어 생성
3.3.8. 오버레이 실행 영역과 함께 비니어 재사용
3.3.9. 분기 인라이닝
3.4. 명령 행 옵션을 사용하여 단순 이미지 만들기
3.4.1. 타입 1, 로드 영역 하나와 연속적 출력 영역
3.4.2. 타입 2, 로드 영역 하나와연속되지 않는 출력 영역
3.4.3. 타입 3, 로드 영역 두 개와 연속되지않는 출력 영역
3.5. 명령 행 옵션을 사용하여 C++ 예외 처리
3.6. 이미지에 대한 정보 얻기
3.6.1. 열 세부 정보
3.6.2. 행 세부 정보
4. 이미지 심볼 액세스
4.1. ARM/Thumb 동의어
4.2. 링커 정의 심볼 액세스
4.2.1. 영역 관련 심볼
4.2.2. 섹션 관련 심볼
4.2.3. 링커 정의 심볼 가져오기
4.3. 다른 이미지의 심볼 액세스
4.3.1. Symdefs 파일 만들기
4.3.2. Symdefs 파일 읽기
4.3.3. Symdefs 파일 형식
4.4. 전역 심볼 숨기기 및 이름 바꾸기
4.4.1. 조정 파일 형식
4.4.2. 조정 파일 명령
4.5. $Super$$ 및 $Sub$$를 사용하여 심볼 정의를 재정의
4.6. 심볼 버전 관리
4.6.1. 버전
4.6.2. 기본 버전
4.6.3. 버전 관리된 심볼 만들기
5. 스캐터 로딩 설명 파일 사용
5.1. 스캐터 로딩 개요
5.1.1. 스캐터 로딩에 대해 정의된 심볼
5.1.2. 스택 및 힙 지정
5.1.3. 스캐터 로딩을 사용하는 경우
5.1.4. 스캐터 로딩 명령 행 옵션
5.1.5. 단순 메모리 맵을 가진 이미지
5.1.6. 복잡한 메모리 맵을 가진 이미지
5.2. 스캐터 로딩 설명 파일의 형식적 구문
5.2.1. BNF 표시 및 구문
5.2.2. 스캐터 로딩 설명 파일 구문의 개요
5.2.3. 로드 영역 설명
5.2.4. 실행 영역 설명
5.2.5. 입력 섹션 설명
5.2.6. 다중 일치 확인
5.2.7. 경로 이름 확인
5.3. 영역 및 섹션 주소 지정의 사례
5.3.1. 스캐터 로딩 설명의 비니어 입력 섹션 선택
5.3.2. 루트 실행 영역 만들기
5.3.3. 고정 주소에 영역 배치
5.3.4. 오버레이를 사용한 섹션 배치
5.3.5. 루트 영역에 섹션 할당
5.3.6. 빈 영역 예약
5.3.7. ARM 라이브러리 배치
5.3.8. 사전 처리 지시문 사용
5.4. 단순 이미지에 대한 해당 스캐터 로딩 설명
5.4.1. 타입 1, 로드 영역 하나와 연속되는 출력 영역
5.4.2. 타입 2, 로드 영역 하나와 연속되지 않는 출력 영역
5.4.3. 타입 3, 로드 영역 두 개와 연속되지 않는 출력 영역
6. System V 공유 라이브러리
6.1. 소개
6.1.1. 추가 정보 얻기
6.2. SVr4 공유 라이브러리 사용
6.2.1. ARM 리눅스 실행 가능 파일빌드
6.2.2. 심볼 액세스
6.2.3. 예외 테이블
6.2.4. TLS(Thread Local Storage)
6.2.5. 동적 링커 사용
7. 라이브러리 만들기 및 사용
7.1. 라이브러리 개요
7.2. 라이브러리 검색, 선택 및 스캔
7.2.1. ARM 라이브러리 검색
7.2.2. 사용자 라이브러리 검색
7.2.3. 라이브러리 스캔
7.3. ARM 라이브러리 생성기
7.3.1. 라이브러리 생성기 명령 행 옵션
7.3.2. 명령 행 옵션 순서 지정
7.3.3. armar 사용 예
8. fromelf 사용
8.1. fromelf 개요
8.1.1. 이미지 구조
8.2. fromelf 명령 구문
8.2.1. 명령 행 옵션 순서 지정
8.3. fromelf 사용 예제
8.3.1. 일반 이진 파일 생성
8.3.2. 디스어셈블리
8.3.3. 어셈블리 언어 EQU로서의 필드 오프셋 목록 작성
8.3.4. 정적 데이터의 주소 나열
8.3.5. 디버그를 디버그 없음으로 변환

소유권 고지 사항

® 또는 ™ 표시가 있는 단어와 로고는 ARM Limited 소유의등록 상표 또는 상표입니다. 이 설명서에 언급된 기타 브랜드와 이름은 해당 소유자의 상표일 수 있습니다.

이 설명서에 포함된 전체 또는 일부 정보나 설명된 제품은 해당 저작권 소유자의 사전 서면 승인 없이는 어떤형태로도 개조되거나 복제될 수 없습니다.

이 설명서에 설명된 제품은 지속적으로 개발 및 개선될 수 있습니다. 이 설명서에 포함된 모든 제품 명세와 해당 사용법은 ARM의 신뢰하에 제공됩니다. 그러나 ARM에서는 상품성 또는 특정 목적에의 적합성을 비롯하여그 밖의 묵시적이거나 명시적인 모든 보증을 부인합니다.

이 설명서는 제품 사용자를 지원하는 용도로만 만들어졌습니다. ARM Limited는 이 설명서 정보의 사용,정보의 오류나 누락 또는 제품의 잘못된 사용에 따른 어떠한 손실이나 손상도 책임지지 않습니다.

기밀 상태

이 설명서는 기밀 문서가 아닙니다. 이 설명서의사용, 복사 및 공개에 대한 권한은 ARM과 ARM으로부터이 설명서를 제공받은 당사자가 동의한 계약 조건에따라 라이센스 제한의 적용을 받을 수 있습니다.

제품 상태

이 설명서의 정보는 개발된 제품에 대한 최종정보입니다.

Revision History
Revision A 2002년8월 릴리스 1.2
Revision B 2003년1월 릴리스 2.0
Revision C 2003년9월 RVDS 버전 2.0용 릴리스 2.0.1
Revision D 2004년1월 RVDS 버전 2.1용 릴리스 2.1
Revision E 2004년12월 RVDS 버전 2.2용 릴리스 2.2
Revision F 2005년5월 RVDS 버전 2.2 SP1용 릴리스 2.2
Revision G 2006년3월 RVDS 버전 3.0용 릴리스 3.0
Copyright © 2002-2006 ARM Limited. All rights reserved. ARM DUI 0206GK
Non-Confidential