10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ARM</strong>과 Thumb의 인터워킹5.3 C 및 C++ 인터워킹--apcs=/interwork 명령 행 옵션을 사용하면 <strong>ARM</strong> 컴파일러에서 다른 프로세서 상태로부터 호출할 수 있는 C 및 C++ 코드를 컴파일할 수 있습니다.armcc --thumb --apcs=/interworkarmcc --arm --apcs=/interwork본문에 함수 호출이 없는 함수인 리프 함수의 경우, 컴파일러는 복귀 명령어 BX lr을 생성합니다.Thumb 상태에서 <strong>ARM</strong>v4T용으로 빌드된 리프가 아닌 함수의 경우, 컴파일러에서는 다음과 같이 단일 복귀 명령어를 대체해야 합니다.POP {R4-R7,pc}이 단일 명령어를 다음 시퀀스로 대체해야 합니다.POP {R4-R7}POP {R3}BX R3이렇게 하면 성능에 약간의 영향이 미칩니다.--apcs=/interwork 옵션은 모듈이 컴파일되는 코드 영역의 인터워킹 특성도 설정합니다. 링커에서는 이 속성을 감지하고 적절한 베니어를 삽입합니다. 베니어가차지하는 공간의 크기를 확인하려면 링커 명령 행 옵션 --info=veneers를 사용하면 됩니다.인터워킹과 함께 사용할 가능성이 조금이라도 있는 경우에는 모든 소스 모듈을인터워킹용으로 컴파일하는 것이 좋습니다.참고<strong>ARM</strong>v4T 이전 프로세서에서는 BX 명령어를 구현하지 않으므로 인터워킹용으로컴파일된 <strong>ARM</strong> 코드는 <strong>ARM</strong>v4T 이상에서만 사용할 수 있습니다.5.3.1 Thumb 상태의 함수에 대한 포인터Thumb 코드로 구성되고 Thumb 상태에서 실행되는 함수인 Thumb 함수가 있는 경우, 해당 함수에 대한 포인터에 최하위 비트가 설정되어 있어야 인터워킹이 제대로 작동합니다.5-6 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0203IKNon-ConfidentialUnrestricted Access

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!