2012-01-28 2 views

답변

2

SWI 처리기에 대해 이야기하고 있습니까? 예, SWI 명령어로 참조하는 곳이 있지만 SVC 명령어로 참조하는 경우가 있습니다.

참고 : ARM 아키텍처의 이전 버전에서 SVC는 SWI, 소프트웨어 인터럽트라고 불 렸습니다. 는 ARM ARM

Exception type   Mode  Address 
---------------------------------------------- 
Reset     Supervisor 0x00000000 
Undefined Instruction Undefined 0x00000004 
Software Interrupt (SWI) Supervisor 0x00000008 
Prefetch Abort   Abort  0x0000000C 
Data Abort    Abort  0x00000010 
IRQ      IRQ  0x00000018 
FIQ      FIQ  0x0000001C 

가입일

...

소프트웨어 인터럽트 예외

소프트웨어 인터럽트 명령어 (SWI)는 특정 슈퍼 바이저 (오퍼레이팅 시스템) 기능을 요청 관리자 모드 진입

. SWI가 실행되면, 다음 작업이 수행된다

R14_svc = address of next instruction after the SWI instruction 
SPSR_svc = CPSR 
CPSR[4:0] = 0b10011 /* Enter Supervisor mode */ 
CPSR[5] = 0   /* Execute in ARM state */ 
        /* CPSR[6] is unchanged */ 
CPSR[7]= 1   /* Disable normal interrupts */ 
        /* CPSR[8] is unchanged */ 
CPSR[9] = CP15_reg1_EEbit /* Endianness on exception entry */ 
PC = 0x00000008 

는 SWI 동작을 수행 한 후 리턴하고, (SPSR_svc)에서 CPSR (R14_svc에서)를 PC를 복원 명령어로 돌아가 다음 명령어를 사용 SWI 다음 : MOVS PC, R14