서강대학교 23년도 마이크로프로세서응용실험 7주차 Lab07 결과레포트 (A+자료)
- 최초 등록일
- 2024.03.24
- 최종 저작일
- 2023.04
- 36페이지/ MS 워드
- 가격 1,000원
소개글
"서강대학교 23년도 마이크로프로세서응용실험(마프실) 7주차(Lab07) 결과레포트 (A+자료)"입니다
목차
1. Interrupt types & Vector table
2. Interrupt pending behavior.
3. Interrupt Sequence
4. Interrupt return
5. NVIC
6. Interrupt priority register (NVIC_IPRx)
7. External interrupt/event controller (EXTI)
8. Priority
9. Interrupt latency
10. Software interrupt
11. System control block (SCB)
본문내용
1.목적
- 인터럽트의 동작원리를 이해한다. 인터럽트가 발생했을 때, stack이 어떻게 사용되는지 이해한다.
- vector table의 구성과 역할에 대해 이해한다.
- 인터럽트의 처리과정에서 사용되는 레지스터들의 종류 및 역할을 이해한다.
2.이론
2-1. Interrupt types % Vector table
인터럽트란, 마이크로프로세서에서 외부에서 스위치가 눌리거나 통신에서 신호가 수신되는 등 예기치 못한 상황, 사건을 의미한다. 인터럽트가 발생한다면, 프로세서는 명령어 수행을 마친 후, 해당 인터럽트의 처리를 하는 서브루틴인 interrupt service routine(ISR)을 수행하며 처리하게 된다. exception 또한 interrupt의 한 종류인데, exception은 시스템에 영향을 미칠만한 오류나 문제에서 발생하는 것으로 구분된다.
table 7.2는 STM32F103xx의 vector table의 일부를 보여준다. 0~15번까지는 exception이고, 16번부터는 인터럽트에 대해 번호가 부여된다. vector table의 Address column을 보면, 각 인터럽트에 대해 0x00000000부터 4단위로 절대주소가 부여되어 있다. 이렇게 인터럽트 번호에 4를 곱한 위치에, ISR의 시작 주소가 저장되어 있다.
2-2. Interrupt pending behavior.
외부 인터럽트가 발생했다면, 곧바로 처리되는 것이 아니라, 인터럽트가 처리될 때까지 대기하게 된다. 이렇게 대기하는 상태를 pending이라고 하는데, 프로세서는 pending되어있는 인터럽트들을 우선순위에 맞게 처리한다. 프로세서는 인터럽트를 처리할 때, Thread mode에서 Handler mode로 모드를 변경하고, ISR을 수행할 때 해당 인터럽트의 pending상태를 해제한다.
figure 7.3처럼, 인터럽트가 pending상태에서 처리되지 않고 있다면, NVIC의 interrupt control register에 의해 software적으로 취소될 수도 있다.
figure 7.5처럼, 인터럽트 요청이 계속해서 active일 경우, ISR 처리가 끝난 후에 다시 pending된다. 이럴 경우 한번의 인터럽트를 두 번 이상 처리하는 불상사가 발생할 수 있기에, 인터럽트를 처리할 때 인터럽트 요청 신호를 software적으로 clear할 필요가 있다.
하지만 figure 7.7처럼 인터럽트 요청이 해제된 후 다시 나타난다면, 다시 pending된다. 그리고 figure 7.6처럼 인터럽트 요청이 pulse형태로 반복해서 나타난다면, 한번만 pending된다.
참고 자료
Cortex™-M3 Devices Generic User Guide
The Definitive Guide to ARM Cortex-M3 and CORTEX®-M4 Processors, Joseph Yiu(2014)
Cortex™ -M3 Technical Reference Manual
www.sciencedirect.com