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.
프로세서 예외 처리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