6장 - 인터럽트와 USART

조재훈·2023년 6월 16일
0

인터럽트 개념

1) 프로세스 수행 도중 인터럽트 발생시 하던 일 멈춤
2) 특정 프로그램 메모리에 저장되어있는 ISR(Interrupt Service Routine) 호출
3) 더 이상 인터럽트가 걸리지 않도록 인터럽트 금지
4) 현재 레지스터 상태를 모두 메모리에 저장, Interrupt Source 제거, 인터럽트 걸리도록 복구
(안그럴 경우 나보다 더 높은 인터럽트 발생시 처리 못함)
5) 인터럽트 종류 후 메모리에 저장해둔 레지스터 값 Restore 및 복구
: 인터럽트 루틴은 처리시간을 간편하게
:STM32F429 에서는 GPIO 외부 인터럽트 사용 가능
: GPIO PAxx ~ GPIO PJxx => 각각 11개씩 묶어서 EXTI0 ~ EXTI15

STM32F4xx 인터럽트 Vector Table


(출처 : STM32F429 Manual)

g_pfnVectors:
 .word _estack
 .word Reset_Handler
 .word NMI_Handler
 .word HardFault_Handler
 .word MemManage_Handler
 .word BusFault_Handler
 .word UsageFault_Handler
 .word 0
 .word 0
 .word 0
 .word 0
 .word SVC_Handler
 .word DebugMon_Handler
 .word 0
 .word PendSV_Handler
 .word SysTick_Handler

/*External Interrupts*/
.word WWDG_IRQHandler /*Window WatchDog*/
.word PVD_IRQHandler /*PVD through EXTI Line detection*/
.word TAMP_STAMP_IRQHandler
.word RTC_WKUP_IRQHandler
.word FLASH_IRQHandler /*FLASH*/
.word RCC_IRQHandler /*RCC*/
.word EXTI0_IRQHandler /*EXTI Line0*/
.word EXTI0_IRQHandler /*EXTI Line1*/
.word EXTI0_IRQHandler /*EXTI Line2*/
.word EXTI0_IRQHandler /*EXTI Line3*/
.word EXTI0_IRQHandler /*EXTI Line4*/
profile
맨땅에 헤딩. 인생은 실전.

0개의 댓글