10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

프로세서 예외 처리BL C_SVC_Handler ; Call main part of handlerLDMFD sp!, {r0, r3} ; Get spsr from stackMSR SPSR_cxsf, r0 ; Restore spsrLDMFD sp!, {r0-r3, r12, pc}^ ; Restore registers and returnEND호출할 SVC 결정SVC 처리기는 시작 시 호출할 SVC를 설정해야 합니다. 이 정보는 그림 6-4에서보여 주는 대로 명령어 자체의 0-23 비트에 저장되거나 대개 R0-R3 중 하나인 정수레지스터에 전달됩니다.31 28 27 26 25 24 23 0cond 1 1 1 124_bit_immediatecomment field그림 6-4 <strong>ARM</strong> SVC 명령어최상위 수준 SVC 처리기에서는 LR을 기준으로 SVC 명령어를 로드할 수 있습니다.이 작업은 어셈블리 언어, C/C++ 인라인 또는 임베디드 어셈블러에서 수행합니다.처리기에서는 먼저 예외를 발생시킨 SVC 명령어를 레지스터에 로드해야 합니다.이때 SVC LR에는 SVC 명령어 다음에 나오는 명령어의 주소가 들어 있으므로 다음을 사용하여 SVC를 레지스터 (이 경우 R0) 에 로드할 수 있습니다.LDR R0, [lr,#-4]그런 다음 처리기에서는 주석 필드 필드를 검사하여 필요한 작업을 결정할 수 있습니다. op 코드의 상위 8비트를 지우면 SVC 번호가 추출됩니다.BIC R0, R0, #0xFF0000006-22페이지의 예제 6-9에서는 이러한 명령어를 함께 배치하여 최상위 수준 SVC처리기를 구성하는 방법을 보여 줍니다. <strong>ARM</strong> 상태와 Thumb 상태 모두의 SVC 명령어를 처리하는 처리기의 예제를 보려면 6-20페이지의 예제 6-8을 참조하십시오.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 6-21Unrestricted AccessNon-Confidential

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

Saved successfully!

Ooh no, something went wrong!