반응형
Interrupt (Exception) Vectors Tables
2022.05.31 - [내가 하는 전자공학/Arm] - Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 )
이전 포스팅을 보면 테이블이 생긴 이유를 알 수 있다.
간단히 말하면 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로 쓴다는 의미다.
반응형
'시스템 반도체 > Arm' 카테고리의 다른 글
Arm GIC, SGI ( interrupt controller, 인터럽트 컨트롤러 ) (0) | 2022.05.31 |
---|---|
Arm Interrupt Handling ( 인터럽트, Nested Interrupt ) (0) | 2022.05.31 |
Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 ) (0) | 2022.05.31 |
Arm Thumb ( blx, bx, Thumb2, IT명령어, if then ) (0) | 2022.04.26 |
Arm UART ( TxFIFO, RxFIFO, Baud rate ) (0) | 2022.04.14 |
댓글