2010-06-09 3 views
0

임베디드 디바이스에서 프로그래밍 할 Linux 플랫폼을 사용하고 있습니다.장치 드라이버의 인터럽트 처리 루틴을 검색하는 방법은 무엇입니까?

커널 모듈이 다른 장치 드라이버 모듈의 인터럽트 처리 루틴을 감지 할 수있는 방법이 있습니까?

예를 들어, 나는 커널 모듈 (.ko)을 가지고 있는데,이 커널 모듈이 특정 장치 드라이버가 인터럽트 핸들 루틴을 실행했는지 탐지하려고합니까?

이것이 가능합니까?

감사합니다.

답변

1

이 작업을 수행하는 가장 간단한 방법은 모듈이 콜백을 등록하도록 장치 드라이버를 수정하는 것입니다. 콜백은 장치 드라이버가 인터럽트 루틴 동안 또는 이와 유사한 방식으로 호출합니다.

+0

장치 드라이버의 인터럽트 루틴이 콜백 함수를 호출한다는 의미입니까? – domlao

+0

그건 하나의 가능성이지만, 당신이해야 할 일에 달려 있습니다. 더 좋은 디자인은 인터럽트 루틴이 작업 대기열을 통해 콜백을 예약하도록하는 것일 수 있습니다.이 경우 대기 시간은 길어질 수 있습니다. – caf

1

시도 할 수있는 옵션이 하나 더 있습니다. 인터럽트 공유.
드라이버의 request_irq()와 적절한 인수를 사용하여 동일한 인터럽트를 사용할 수 있습니다.

+0

플래그 :'SA_SHIRQ', 확실하지 않은 dev_id는 NULL이 아닙니다. –

관련 문제