컴퓨터공부

익셉션 모드를 변경 시킬때 코어의 4단계 처리(인터럽트 발생시 코어가 해주는 일)

achivenKakao 2007. 3. 30. 02:10

ARM 프로세서 익셉션과 모드

- ARM은 user모드와 system모드를 제외한 모드를 익셉션에 의해 변경 할 수 있다.

익셉션 모드를 변경 시킬때 코어는 자동으로 다음 4단계의 과정을 거친다.

     1) 익셉션 모드의 spsr에 현재의 cpsr을 저장

     2) lr에 현재의 pc를 저장

     3) cpsr update

     4) pc에 익셉션 핸들러 주소를 저장

     => IRQ가 발생하게 되면 아래에서 보이는 벡터 테이블의 '0x18'로 자동으로 분기 해준다.
         (코어가 자동으로 해준다!!)

- 익셉션의 종류

     FIQ: 고속 인터럽트 처리

     IRQ: 일반 인터럽트 처리

     SVC: 운영체제를 위한 보호 모드

     abort: 가상 메모리와 메모리 보호 처리

     undefined: 하드웨어 코프로세서의 소프트웨어 에뮬레이션


- 벡터 테이블

     익셉션이 발생 했을 때, ARM 코어가 분기하게 되는 주소 테이블

     

익셉션
모드
벡터 테이블 오프셋
Reset
SVC
+0x00
Undefined Instruction
UND
+0x04
Software Interrupt(SWI)
SVC
+0x08
Prefetch Abort
ABT
+0x0c
Data Abort
ABT
+0x10
Not assigned
-
+0x14
IRQ
IRQ
+0x18
FIQ
FIQ
+0x1c