2012-11-24 5 views
0

BeagleBoard-xM Rev C의 사용자 버튼 모듈을 작성하고 있습니다. 지금은 인터럽트 핸들러가 호출 될 때, 즉 사용자 버튼이 눌렀다.request_irq 성공 핸들러가 호출되지 않았습니다.

사용자 버튼은 GPIO 핀 4에 해당합니다. 나는 핸들러를 사용하여 request_irq()에 전달할 IRQ 번호를 얻기 위해 gpio_to_irq (4)를 수행하고 있습니다. 사실 이것은 request_irq 호출입니다.

irq_res = request_irq(4, interrupt_handler, IRQF_TRIGGER_FALLING, "Interrupt Test", NULL); 

내 인터럽트 처리기는 다음과 같습니다.

static irqreturn_t interrupt_handler(int, void*, struct pt_regs*); 

그러나 단추를 누르면 인터럽트 처리기가 호출되지 않습니다. 이 디버깅하는 방법에 대한 모든 포인터?

감사합니다.

답변

0

gpio_to_irq에 4를 전달하지 못했습니다. 내 잘못, 이전 gpiolib 함수 호출의 반환 값을 전달했다. 나는 변수 이름이 잡히기에는 너무 유사했기 때문에 그것을 이해할 수 없었다. 나는 그것을 바로 잡았다. 그리고 효과가있었습니다! 감사!