2
ARM SVC 처리기는 어떤 모드에서 시작합니까? 기본적으로 SVC 예외가 발생했을 때 ARM 코어가 어떤 모드인지 알고 싶습니다.SVC 처리기는 어느 모드에서 시작합니까?
ARM ARM에서는 찾을 수 없지만 내 생각 엔 Supervisor
으로 시작하는 것입니다.
ARM SVC 처리기는 어떤 모드에서 시작합니까? 기본적으로 SVC 예외가 발생했을 때 ARM 코어가 어떤 모드인지 알고 싶습니다.SVC 처리기는 어느 모드에서 시작합니까?
ARM ARM에서는 찾을 수 없지만 내 생각 엔 Supervisor
으로 시작하는 것입니다.
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