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.

프로세서 예외 처리최상위 수준 처리기에서 스택 포인터 값을 C 함수에 두 번째 매개변수 (R1) 로 전달하는 경우 C로 작성된 SVC 처리기로 또는 이 SVC 처리기에서 값을 전달할 수있으며 C 함수가 이 처리기에 액세스할 수 있도록 업데이트됩니다.void C_SVC_handler (unsigned number, unsigned *reg)그러면 C 함수는 주 응용 프로그램 코드에서 SVC 명령어가 발생할 때 레지스터에들어 있던 값에 액세스할 수 있습니다 (그림 6-5 참조) . C 함수는 이 값에서 다음내용을 읽습니다.value_in_reg_0 = reg [0];value_in_reg_1 = reg [1];value_in_reg_2 = reg [2];value_in_reg_3 = reg [3];또한 해당 값에 다음 내용을 다시 씁니다.reg [0] = updated_value_0;reg [1] = updated_value_1;reg [2] = updated_value_2;reg [3] = updated_value_3;이렇게 하면 최상위 수준 처리기에서는 업데이트된 값을 적절한 스택 위치에 썼다가 나중에 레지스터로 복원합니다.Previous sp_SVCsp_SVClr_SVCr12r3r2r1r0reg[3]reg[0]그림 6-5 관리자 모드 스택 액세스관리자 모드에서 SVC 사용SVC 명령어가 실행되면 다음이 수행됩니다.1. 프로세서가 관리자 모드로 전환됩니다.2. CPSR이 SVC SPSR에 저장됩니다.6-24 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!