RealView® Compilation Tools 개발자 설명서

버전 4.0


Table of Contents

서문
설명서 정보
대상 독자
설명서 사용
표기 규칙
추가 정보
사용자 의견
RealView Compilation Tools에 대한 사용자 의견
설명서에 대한 사용자 의견
1. 소개
1.1. RealView Compilation Tools 개요
1.2. 예제 사용
2. ARM 프로세서용 소프트웨어 개발
2.1. ARM 프로젝트 개요
2.1.1. 다중 처리 시스템
2.1.2. 강하게 결합된 메모리 (Tightly Coupled Memory)
2.1.3. 메모리 관리
2.1.4. Thumb-2
2.1.5. 부동 소수점 빌드 옵션
2.2. ARM 아키텍처 v4T
2.2.1. 주요 기능
2.2.2. 정렬 지원
2.2.3. 엔디안 지원
2.3. ARM 아키텍처 v5TE
2.3.1. 주요 기능
2.3.2. 정렬 지원
2.3.3. 엔디안 지원
2.4. ARM 아키텍처 v6
2.4.1. 주요 기능
2.4.2. 정렬 지원
2.4.3. 엔디안 지원
2.5. ARM 아키텍처 v6-M
2.5.1. 주요 기능
2.5.2. 정렬 지원
2.5.3. 엔디안 지원
2.6. ARM 아키텍처 v7-A
2.6.1. 주요 기능
2.6.2. 정렬 지원
2.6.3. 엔디안 지원
2.7. ARM 아키텍처 v7-R
2.7.1. 주요 기능
2.7.2. 정렬 지원
2.7.3. 엔디안 지원
2.8. ARM 아키텍처 v7-M
2.8.1. 주요 기능
2.8.2. 정렬 지원
2.8.3. 엔디안 지원
3. 임베디드 소프트웨어 개발
3.1. 임베디드 소프트웨어 개발 개요
3.1.1. 예제 코드
3.2. 기본 컴파일 도구 동작
3.2.1. C 라이브러리 구조
3.2.2. 기본 메모리 맵
3.2.3. 응용 프로그램 시작
3.3. 타겟 하드웨어에 맞게 C 라이브러리 조정
3.4. 타겟 하드웨어에 맞게 이미지 메모리 맵 조정
3.4.1. 스캐터 로딩 설명 파일
3.4.2. 루트 영역
3.4.3. 스택 및 힙 배치
3.5. 리셋 및 초기화
3.5.1. 벡터 테이블
3.5.2. ROM 및 RAM 재매핑
3.5.3. 지역 메모리 설정 고려 사항
3.5.4. 스택 포인터 초기화
3.5.5. 하드웨어 초기화
3.5.6. 실행 모드 고려 사항
3.6. 타겟 하드웨어 및 메모리 맵
4. C, C++ 및 어셈블리 언어 조합
4.1. 명령어 내장 함수, 인라인 어셈블러 및 임베디드 어셈블러 사용
4.2. 어셈블리 코드에서 C 전역 변수 액세스
4.3. C++에서 C 헤더 파일 사용
4.3.1. 시스템 C 헤더 파일 포함
4.3.2. 사용자 고유의 C 헤더 파일 포함
4.4. C, C++ 및 ARM 어셈블리 언어 간 호출
4.4.1. 언어 간 호출을 위한 일반적인 규칙
4.4.2. C++ 관련 정보
4.4.3. 언어 간 호출 예제
5. ARM과 Thumb의 인터워킹
5.1. 인터워킹 개요
5.1.1. 인터워킹을 사용하는 경우
5.2. 어셈블리 언어 인터워킹
5.3. C 및 C++ 인터워킹
5.3.1. Thumb 상태의 함수에 대한 포인터
5.3.2. 동일한 함수의 두 가지 버전 사용
5.4. 인터워킹 예제
6. 프로세서 예외 처리
6.1. 프로세서 예외 개요
6.2. ARMv6 이하, ARMv7-A 및 ARMv7-R 프로필
6.2.1. 예외 유형
6.2.2. 벡터 테이블
6.2.3. 프로세서 모드 및 레지스터
6.2.4. 예외 처리
6.2.5. 리셋 처리기
6.2.6. 데이터 중단 처리기
6.2.7. 인터럽트 처리기
6.2.8. SVC 처리기
6.2.9. 프리페치 중단 처리기
6.2.10. 정의되지 않은 명령어 처리기
6.3. ARMv6-M 및 ARMv7-M 프로필
6.3.1. 주 스택과 프로세스 스택
6.3.2. 예외 유형
6.3.3. 벡터 테이블
6.3.4. 중첩된 벡터 인터럽트 컨트롤러
6.3.5. 예외 처리
6.3.6. 시스템 제어 공간 레지스터 구성
6.3.7. 개별 IRQ 구성
6.3.8. 관리자 호출
6.3.9. 시스템 타이머
7. 디버그 통신 채널
7.1. 디버그 통신 채널 개요
7.2. 타겟 및 호스트 디버그 도구 간의 DCC 통신
7.2.1. 인터럽트 구동 디버그 통신
7.3. Thumb 상태에서 액세스
8. 세미호스팅
8.1. 세미호스팅 개요
8.1.1. 세미호스팅이란?
8.1.2. 세미호스팅 인터페이스
8.2. 세미호스팅 구현
8.2.1. RealView ARMulator ISS
8.2.2. RealView ICE
8.2.3. 명령어 세트 시스템 모델
8.2.4. RealMonitor
8.3. 세미호스팅 작업
8.3.1. angel_SWIreason_EnterSVC (0x17)
8.3.2. angel_SWIreason_ReportException (0x18)
8.3.3. SYS_CLOSE (0x02)
8.3.4. SYS_CLOCK (0x10)
8.3.5. SYS_ELAPSED (0x30)
8.3.6. SYS_ERRNO (0x13)
8.3.7. SYS_FLEN (0x0C)
8.3.8. SYS_GET_CMDLINE (0x15)
8.3.9. SYS_HEAPINFO (0x16)
8.3.10. SYS_ISERROR (0x08)
8.3.11. SYS_ISTTY (0x09)
8.3.12. SYS_OPEN (0x01)
8.3.13. SYS_READ (0x06)
8.3.14. SYS_READC (0x07)
8.3.15. SYS_REMOVE (0x0E)
8.3.16. SYS_RENAME (0x0F)
8.3.17. SYS_SEEK (0x0A)
8.3.18. SYS_SYSTEM (0x12)
8.3.19. SYS_TICKFREQ (0x31)
8.3.20. SYS_TIME (0x11)
8.3.21. SYS_TMPNAM (0x0D)
8.3.22. SYS_WRITE (0x05)
8.3.23. SYS_WRITEC (0x03)
8.3.24. SYS_WRITE0 (0x04)
8.4. 디버그 에이전트 상호작용 SVC

소유권 고지 사항

이 소유권 고지 사항의 아래 부분에서 달리 명시되지 않는 한 ® 또는 ™ 표시가 있는 단어와 로고는 EU, 대한민국 및 기타 국가에서 ARM Limited의 등록 상표 또는 상표입니다. 이 설명서에 언급된 기타 브랜드와 이름은 해당 소유자의 상표일 수 있습니다.

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

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

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

ARM이라는 단어가 사용되는 경우 "ARM이나 해당하는 자회사"를 의미합니다.

기밀 상태

이 설명서는 기밀 문서가 아닙니다. 이 설명서의 사용, 복사 및 공개 권한은 ARM과 설명서 사용 당사자의 동의하에 라이센스 제한을 받습니다.

액세스 제한 없음은 ARM의 내부 분류입니다.

제품 상태

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

Revision History
Revision A2002년 8월릴리스 1.2
Revision B2003년 1월릴리스 2.0
Revision C2003년 9월ARM® RealView® Developer Suite용 릴리스 2.0.1
Revision D2004년 1월RealView Developer Suite용 릴리스 2.1
Revision E2004년 12월RealView Developer Suite용 릴리스 2.2
Revision F2005년 5월RealView Developer Suite용 릴리스 2.2 SP1
Revision G2006년 3월RealView Development Suite용 릴리스 3.0
Revision H2007년 3월RealView Development Suite용 릴리스 3.1
Revision I2008년 9월RealView Development Suite용 릴리스 4.0
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0203IK
Non-Confidential