PDF version - ARM Information Center
PDF version - ARM Information Center
PDF version - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
C, C++ 및 어셈블리 언어 조합4.4 C, C++ 및 <strong>ARM</strong> 어셈블리 언어 간 호출이 단원에서는 C++에서 C 및 어셈블리 언어 코드를 호출하고 C 및 어셈블리 언어에서 C++ 코드를 호출하는 방법을 보여 주는 예제를 제공합니다. 다음을 비롯한 호출 규칙 및 데이터 유형에 대해서도 설명합니다.AAPCS (Procedure Call Standard for the <strong>ARM</strong> Architecture) 를 준수할 경우 C/C++및 어셈블리 언어 루틴 간의 호출을 조합할 수 있습니다. 자세한 내용은install_directory\Documentation\Specifications\...에 있는 AAPCS 사양(aapcs.pdf) 을 참조하십시오.참고이 단원의 내용은 구현 방식에 따라 달라지며 이후 릴리스에서 변경될 수 있습니다.4.4.1 언어 간 호출을 위한 일반적인 규칙C, C++ 및 어셈블리 언어 간의 호출에는 다음과 같은 일반적인 규칙이 적용됩니다. 자세한 내용은 컴파일러 사용 설명서를 참조하십시오.임베디드 어셈블러를 사용하고 BSABI (<strong>ARM</strong> 아키텍처용 기본 표준 응용 프로그램 바이너리 인터페이스) 를 준수하면 조합 언어 프로그래밍을 보다 쉽게 구현할수 있습니다. 이를 통해 다음 사항과 관련된 작업을 쉽게 수행할 수 있습니다.• __cpp 키워드를 사용한 이름 자르기• 암시적 this 매개변수가 전달되는 방식• 가상 함수가 호출되는 방식• 참조 표현• 기본 클래스 또는 가상 구성원 함수가 있는 C++ 클래스 유형의 레이아웃• PODS (기존의 일반 데이터 구조체) 가 아닌 클래스 객체 전달조합 언어 프로그래밍에는 다음과 같은 일반적인 규칙이 적용됩니다.• C 호출 규칙을 사용합니다.• C++에서 비멤버 함수를 extern "C"로 선언하여 C 연결을 포함하도록 지정할 수 있습니다. 이번 릴리스의 RealView Compilation Tools에서 C 연결을포함한다는 것은 함수를 정의하는기호가 잘리지 않는다는 것을 의미합니다. C 연결을 사용하면 함수를 한 언어로 구현한 후 다른 언어에서 호출할수 있습니다.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 4-7Unrestricted AccessNon-Confidential