[리눅스커널] 인터럽트: 인터럽트 핸들러 초기화 과정 디버깅해보기

Guillermo Austin Kim|2020년 4월 5일
Posts

[리눅스커널] 인터럽트: 인터럽트 핸들러 초기화 과정 디버깅해보기

Guillermo Austin Kim|2020년 4월 5일

우리는 request_irq() 함수로 인터럽트 핸들러를 등록하는 과정을 배웠습니다. 또한 request_threaded_irq() 함수에서 인터럽트 디스크립터에 해당 인터럽트 설정 정보를 저장하는 코드를 살펴봤습니다. 이번에는 라즈비안에서 리눅스 커널 코드에 디버깅 코드를 추가해 인터럽트 핸들러를 등록하는 코드 흐름을 파악해보겠습니다. 먼저 패치 코드를 소개합니다.diff --git a/kernel/irq/manage.c b/kernel/irq/manage.cindex 5c0ba5c..a8fca52 100644--- a/kernel/irq/manage.c+++ b/kernel/irq/manage.c@@ -1847,6 +1847,12 @@ int request_threaded_irq(unsigned