인터럽트 및 예외

‘인터럽트’는 보통 타이머 혹은 주변기기에서 발생하는 외부 신호이고 ‘예외’는 소프트웨어적으로 발생하는 신호를 의미한다.

위와 같은 신호가 발생하면 프로세스를 현재 진행 상황을 ‘컨텍스트’로 저장하여 프로세스를 일시중단 시키고 NVIC에 정의된 핸들러에 따라서 ‘예외’ 혹은 ‘인터럽트’ 관련 처리를 하고 이전에 저장한 ‘컨텍스트’를 복구하여 다시 원래 흐름으로 프로세스를 동작시킨다.

NVIC

모든 ‘예외’와 ‘인터럽트’는 NVIC(Nested Vectored Interrupt Controller)라는 전용 유닛에 의해 처리된다.

NVIC의 특징은 아래와 같다.

  • NVIC는 ‘인터럽트’와 ‘예외’를 모두 처리할 수 있다.
  • 특정 우선순위에 따라 동작할 수 있다.
  • 고정적인 지연 시간을 가진다. (deterministic interrupt latency)