INTERRUPTHANDLER

Category
아이템: 
포스트 갯수1

인터럽트(2) - 인터럽트 핸들러는 누가 언제 호출하나?

By Guillermo Austin Kim | 2018년 1월 29일 | 
인터럽트 핸들러는 누가 언제 호출할까요? 인터럽트가 떴을 때 인터럽트 벡터가 실행되어 인터럽트 핸들러를 호출합니다.인터럽트 핸들러를 호출할 때 프로세스는 정해져 있지 않습니다. 어떤 프로세스가 돌던 인터럽트가 뜰 수 있기 때문입니다. 그럼 인터럽트 핸들러는 누가 호출한다고 대답해야 할까요? 정답은 없지만 인터럽트 벡터라고 말할 수 있습니다. 참고로 인터럽트 벡터는 ARM이 실행시킵니다. 인터럽트가 뜨면 인터럽트 벡터인 __irq_svc 심볼로 시작해서 handle_irq_event_percpu 함수까지 처리됩니다.이후 handle_irq_event_percpu 함수 내 action->handler 함수 포인터가 실행될 때 인터럽트 핸들러를 호출하죠 이 때 파라미터가 해당 인터럽트의 디스크립터와 pri