도와주세요!!
글 수 15,339
2003.03.19 14:02:50 (*.186.48.184)
6691
안녕하세요....
: ./test실행한 후 interrupt 부분을 테스트해보았는데 interrupt가 걸리지 않습
: 니다.
: /proc/interrupt 하면 46번으로 인터럽트는 등록이 되어 있는 것을 확인할수
: 있습니다. 그런데 ./test에서 5번(interrupt)을 선택하면 드바이스의
: interrupt_sleep_on()에 의해 sleep은 되는데..button을 눌러도 wake_up이 동
: 작하지 안습니다.
:
: 회로상에서 interrup버튼을 누르면 gpio21번에 low가 입력되는 것을 확인 하였
: 습니다.
:
==>> 이상하네요... 저는 인터럽트가 다음과 같이 잡히는데요...
[root@ezboard nfs]$ cat /proc/interrupts
10: 0 mk712_touchscreen
11: 232 GPIO 11-27
12: 0 SA1100
17: 569 serial_sa1100
26: 3694 timer
42: 0 SW_INT <<==== 요 부분
47: 232 cs89x0
Err: 0
[root@ezboard nfs]$
인터럽트 번호가 42번이 정상입니다..
#define GPIO_IRQ_21 21 // GPIO21
set_GPIO_IRQ_edge(1 << SA1100_IRQ_TO_GPIO(GPIO_IRQ_21), GPIO_RISING_EDGE);
#define IRQ_GPIO_11_27(x) (32 + (x) - 11)
#define SA1100_GPIO_TO_IRQ(i) (((i) < 11) ? SA1100_IRQ(i) : IRQ_GPIO_11_27(i))
==>> 이부분을 계산하면.... (32+21-11) = 42
그럼 수고하세요...
제가 컴파일한 소스를 첨부합니다..
: ./test실행한 후 interrupt 부분을 테스트해보았는데 interrupt가 걸리지 않습
: 니다.
: /proc/interrupt 하면 46번으로 인터럽트는 등록이 되어 있는 것을 확인할수
: 있습니다. 그런데 ./test에서 5번(interrupt)을 선택하면 드바이스의
: interrupt_sleep_on()에 의해 sleep은 되는데..button을 눌러도 wake_up이 동
: 작하지 안습니다.
:
: 회로상에서 interrup버튼을 누르면 gpio21번에 low가 입력되는 것을 확인 하였
: 습니다.
:
==>> 이상하네요... 저는 인터럽트가 다음과 같이 잡히는데요...
[root@ezboard nfs]$ cat /proc/interrupts
10: 0 mk712_touchscreen
11: 232 GPIO 11-27
12: 0 SA1100
17: 569 serial_sa1100
26: 3694 timer
42: 0 SW_INT <<==== 요 부분
47: 232 cs89x0
Err: 0
[root@ezboard nfs]$
인터럽트 번호가 42번이 정상입니다..
#define GPIO_IRQ_21 21 // GPIO21
set_GPIO_IRQ_edge(1 << SA1100_IRQ_TO_GPIO(GPIO_IRQ_21), GPIO_RISING_EDGE);
#define IRQ_GPIO_11_27(x) (32 + (x) - 11)
#define SA1100_GPIO_TO_IRQ(i) (((i) < 11) ? SA1100_IRQ(i) : IRQ_GPIO_11_27(i))
==>> 이부분을 계산하면.... (32+21-11) = 42
그럼 수고하세요...
제가 컴파일한 소스를 첨부합니다..