본문 바로가기
시스템 반도체/Arm

Arm Interrupt Vectors Tables (인터럽트 벡터 테이블, IVT)

by 전컴반 2022. 5. 31.
반응형
Interrupt (Exception) Vectors Tables

 

2022.05.31 - [내가 하는 전자공학/Arm] - Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 )

 

Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 )

이번에는 Interrupt와 Exception에 대해 알아볼까 한다. 사실 이 두 개는 혼용하여 사용하거나 대동소이하다. 굉장히 중요한 개념이니 천천히 알아보자 Interrupt 먼저 interrupt란 뭔지 알아보자 interrupt는

wpaud16.tistory.com

 

이전 포스팅을 보면 테이블이 생긴 이유를 알 수 있다. 

 

간단히 말하면 Interrupt 혹은 Exception 동작이 발생되면 ARM에선 Vectors table에 맞게 지정된 위치로 branch 하는데 아래와 같이 정의돼 있다. 

 

먼저, Exception Vectors tables란 interrupt나 exception이 발생했을 때 ISR로 이동하기 위한 동작을 정해놓은 tabel이다. 일종의 매뉴얼 같은 것이다. 역시 모든 CPU는 자기만의 vectors table을 가지고 있다.

 

 

 

Secure mode을 예시로 보면, undefined 명령어가 생기면 PC를 0x04로 branch 하여 메모리에 존재하고 있는 undefined 명령어일 때의 handle 동작을 수행한다. 

 

모든 제조사마다 자신만의 table을 가지고 있다.

 

이런 table을 가리키는 register가 있는데 VBAR레지스터라고 부른다. 이 tabel의 시작 주소를 가리킨다.

MRC, MCR 명령어를 이용하여 지정한다. 

 

MRC p15, 0, <Rt>, c12, c0, 0와 같이 쓰는데 VBAR를 Rt로 읽어온다는 의미고

MCR p15, 0, <Rt>, c12, c0, 0은 Rt를 VBAR로 쓴다는 의미다.

 

 

반응형

댓글