SA에서 GPIO 11~27의 interrupt service routine |
글쓴이 : 초보 (2003년 07월 17일 오후 09:56) 읽은수: 761 [ 질문과답변 ] |
안녕하세요. 너그러이 답변 부탁드립니다. ^^; SA의 GPIO(PXA도 마찬가지입니다만)에서 11~27은 rising 또는 falling edge가 뜨면 irq를 발생시키고 다음의 interrupt handler를 구동시킵니다. 여기까지 맞나요? void sa1100_GPIO11_27_demux(int irq, void *dev_id,struct pt_regs *regs) { ..... (irq = (GEDR & 0xfffff800)) .... for (i = 11; i <= 27; ++i) { if (irq & (1<> do_IRQ (IRQ_GPIO_11_27(i), regs); } } 그러면, 이 handler 내에서는 GDER을 조사해서 어느 GPIO핀에서 edge가 떴는지 조사해서 해당 ISR을 수행해야 할텐데요. 이것이 위의 코드에서는 do_IRQ()인 것 같은데요. 이 함수에 제가 원하는 ISR 코드를 넣어 주고 싶은데, 어디에서 하는 지 모르겠습니다. 도움 말씀 바랍니다. |
안영수 (2003년 07월 18일 오전 12:15)
집에서는 리눅스를 사용하지 않는 상태라 소스가 없네요.. |
[ 이글에 답장 | 본문에 답장 ] |
|
안영수 (2003년 07월 18일 오후 01:53)
irq_desc가 interrupt가 들어왔을 때 처리할 handler와 기타 정보를 가진 구조체입니다. |
[ 이글에 답장 | 본문에 답장 ] |
|