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.

프로세서 예외 처리반적인 시스템 디자인에서는 SVC가 프로세스 스택을 사용하는 사용자 코드에서만 호출되므로 대부분의 시스템에서는 불필요합니다. 이 경우 어셈블리 코드는단일 MSR 명령어와 처리기 C 본문으로의 마무리 호출 분기 (B 명령어) 로 구성될수 있습니다.예제 6-21 SVC 처리기 예제__asm void SVCHandler (void){IMPORT SVCHandler_mainTST lr, #4ITE EQMRSEQ R0, MSPMRSNE R0, PSPB SVCHandler_main}void SVCHandler_main (unsigned int * svc_args){unsigned int svc_number;/** Stack contains:* R0, R1, R2, R3, R12, R14, the return address and xPSR* First argument (R0) is svc_args[0]*/svc_number = ( (char *) svc_args[6]) [-2];switch (svc_number){case SVC_00:/* Handle SVC 00 */break;case SVC_01:/* Handle SVC 01 */break;default:/* Unknown SVC */break;}}6-42페이지의 예제 6-22에서는 많은 SVC에 대해 서로 다른 선언을 만드는 방법을보여 줍니다. __svc는 함수 호출을 지정된 번호가 포함된 SVC 명령어로 대체하는컴파일러 키워드입니다.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 6-41Unrestricted AccessNon-Confidential

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

Saved successfully!

Ooh no, something went wrong!