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.

프로세서 예외 처리END; SVC handler so as to restore; registers and return to program.C 및 어셈블리 언어의 SVC 처리기최상위 수준 처리기는 항상 <strong>ARM</strong> 어셈블리 언어로 작성해야 하지만 각 SVC를 처리하는 루틴은 어셈블리 언어나 C로 작성할 수 있습니다. 제한 사항에 대한 자세한 내용은 6-24페이지의 관리자 모드에서 SVC 사용을 참조하십시오.최상위 수준 처리기에서는 BL 명령어를 사용하여 적절한 C 함수로 분기합니다.SVC 번호는 어셈블리 루틴에 의해 R0으로 로드되므로 SVC 번호가 C 함수에 첫번째 매개변수로 전달됩니다. C 함수는 이 값을 switch () 문 등에 사용할 수 있습니다 (예제 6-11 참조) .이 C 함수를 호출하려면 6-22페이지의 예제 6-9의 SVC_Handler 루틴에 다음 행을추가할 수 있습니다.BL C_SVC_Handler ; Call C routine to handle the SVC예제 6-11 C 함수의 SVC 처리기void C_SVC_handler (unsigned number){switch (number){case 0 : /* SVC number 0 code */...break;case 1 : /* SVC number 1 code */...break;...default : /* Unknown SVC - report error */}}많은 양의 스택 공간이 필요한 함수를 사용할 수 없도록 관리자 모드 스택 공간을제한할 수 있습니다.MOV R1, sp ; Second parameter to C routine...; ...is pointer to register values.BL C_SVC_Handler ; Call C routine to handle the SVC.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 6-23Unrestricted AccessNon-Confidential

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

Saved successfully!

Ooh no, something went wrong!