728x90
반응형
Interrupt 란?
: CPU 내,외부의 긴급 서비스 요청에 의해 현재 실행 중인 일을 중단하고 그 요청에 합당한 서비스를 하는 기능
MCU가 입력 또는 출력을 수행하는데 중요한 기능으로 하드웨어적인 방법으로 구현되어 있음
Interrupt 가 발생하면?
: 실행중인 프로그램 중단, 실행중 주소 값 stack 저장
발생한 인터럽트 벡터 주소 값 PC에 저장
인터럽트 서비스 루틴 이동 및 실행, 종료 후
Stack에 저장된 주소 값 PC에 저장 후, 인터럽트 발생 전으로 돌아옴
RESET 은?
: 무조건 0x0000번지로 이동(in ATmega128)
인터럽트 발생이전으로 안 돌아옴
Interrupt 처리과정
① 주 프로그램 실행
② 인터럽트 발생
③ 복귀주소 저장
④ 인터럽트 벡터로 점프
⑤ 인터럽트 처리
⑥ 인터럽트 처리완료
⑦ 복귀주소 로드
⑧ 마지막에 실행되던 주소로 점프
⑨ 주 프로그램 실행
Interrupt 의 3대 요소?
: 인터럽트 소스
인터럽트 벡터
인터럽트 우선순위
인터럽트 소스
: MCU에 따라 다르게 정의 되어 있으며, MI(Maskable Interrupt), NMI(Non-Masakable Interrupt)등이 있으며,
NMI의 대표적인 예로 RESET 이 있다.
인터럽트 서비스 루틴(ISR)
: 요청한 인터럽트를 처리해주기 위한 인털버트 구동 프로그램
인터럽트 벡터(IV)
: 인터럽트 서비스 루틴의 시작 번지
인터럽트 벡터 테이블(IVT)
: 인터럽트 벡터를 모아놓은 메모리 공간
인터럽트 우선순위
: 인터럽트가 2개 이상이 동시에 발생할 때 어느 것을 먼저 처리해야 할지를 결정하는 기능
ATmega128은 하드웨어적으로 우선순위가 지정되어 있으며, 벡터 번호가 낮은 것이 우선순위가 높다.
MSP430 또한 하드웨어적으로 우선순위가 지정되어 있으며, 벡터 번호가 높은 것이 우선순위가 높다.
728x90
반응형
댓글