![](/zbxe/layouts/mr_layouts_1st/images/default/blank.gif)
도와주세요!!
글 수 15,339
2007.11.13 12:06:19 (*.82.68.226)
6657
안녕하세요..
include/asm/arch/hardware.h
include/asm-arm/arch-pxa/irqs.h
에 있습니다.
이것을 디바이스 드라이버 소스의 헤더파일에 추가해 주셔야 합니다.
#include <linux/interrupt.h>
#include <asm/hardware.h>
#include <asm/irq.h>
이렇게 추가해 주시고 한번 해 보세요..
그럼 수고하세요..
>제가 하고있는게, 보드에다가 ADC를 붙여서 사용을 하려는건데요~
>GPIO를 이용하여 start of conversion 신호와 end of conversion 신호를 사용하고 있습니다!
>
>일단, end of conversion 신호를 GPIO 8번에 falling edge 일 때 인터럽트가 걸리도록 하려고합니다.
>인터럽트에 대한거는, adc_driver.c 라는 곳에서
>int __init gpio_init_module(void) 안에 아래와 같이 써주었습니다.
>
>set_GPIO_IRQ_edge(8, GPIO_FALLING_EDGE);
>request_irq(IRQ_GPIO(8), test_interrupt, SA_INTERRUPT, IOM_ADC_NAME, NULL);
>
>그리고 ISR으로 밑에 함수를 써주었는데 맞는건가요?
>void test_interrupt(int irq, void *dev_id, struct pt_regs *regs)
>{
>printk("Interrupt ok!!! %dn", irq);
>}
>
>근데 test.c 에 있는 printk 구문만 읽히고, test_interrupt 안에 있는건 안 읽히는게 adc_driver를 실행파일로 해줘야하는건가요?
>
>잘 모르겠어요ㅠ
>좀 도와주세요....
>
>
>그리고 또 gpio 를 insmod 해 주는 부분에서
>unresolved symbol irq_GPIO
>unresolved symbol Set_GPIO_irq_edge
>라고 나오는데 이건 어디가서 해결해야하는건가요?
>
>set_GPIO_IRQ_edge 함수는 커널의 arch/arm/mach-pxa/irq.c 에 있는 것을 알고,
>그 부분으로 가보았는데 제가 이 곳에서 어떤 것을 고쳐서 인터럽트를 사용해야하는건가요?
>
>
>
>
>>안녕하세요..
>>
>>gpio.c 가 디바이스 드라이버 소스라면 이 곳에 인터럽트 irq를 등록하고 사용하시면 됩니다..
>>
>>그럼 수고하세요..
>>
>>
>>>GPIO 핀에 대한 인터럽트를 사용하려고 하는데~
>>>gpio.c 라는 곳에다가 인터럽트 사용하도록 irq등록해서 쓰면 되는거 맞죠?
>>>
>>>
>>
>
include/asm/arch/hardware.h
include/asm-arm/arch-pxa/irqs.h
에 있습니다.
이것을 디바이스 드라이버 소스의 헤더파일에 추가해 주셔야 합니다.
#include <linux/interrupt.h>
#include <asm/hardware.h>
#include <asm/irq.h>
이렇게 추가해 주시고 한번 해 보세요..
그럼 수고하세요..
>제가 하고있는게, 보드에다가 ADC를 붙여서 사용을 하려는건데요~
>GPIO를 이용하여 start of conversion 신호와 end of conversion 신호를 사용하고 있습니다!
>
>일단, end of conversion 신호를 GPIO 8번에 falling edge 일 때 인터럽트가 걸리도록 하려고합니다.
>인터럽트에 대한거는, adc_driver.c 라는 곳에서
>int __init gpio_init_module(void) 안에 아래와 같이 써주었습니다.
>
>set_GPIO_IRQ_edge(8, GPIO_FALLING_EDGE);
>request_irq(IRQ_GPIO(8), test_interrupt, SA_INTERRUPT, IOM_ADC_NAME, NULL);
>
>그리고 ISR으로 밑에 함수를 써주었는데 맞는건가요?
>void test_interrupt(int irq, void *dev_id, struct pt_regs *regs)
>{
>printk("Interrupt ok!!! %dn", irq);
>}
>
>근데 test.c 에 있는 printk 구문만 읽히고, test_interrupt 안에 있는건 안 읽히는게 adc_driver를 실행파일로 해줘야하는건가요?
>
>잘 모르겠어요ㅠ
>좀 도와주세요....
>
>
>그리고 또 gpio 를 insmod 해 주는 부분에서
>unresolved symbol irq_GPIO
>unresolved symbol Set_GPIO_irq_edge
>라고 나오는데 이건 어디가서 해결해야하는건가요?
>
>set_GPIO_IRQ_edge 함수는 커널의 arch/arm/mach-pxa/irq.c 에 있는 것을 알고,
>그 부분으로 가보았는데 제가 이 곳에서 어떤 것을 고쳐서 인터럽트를 사용해야하는건가요?
>
>
>
>
>>안녕하세요..
>>
>>gpio.c 가 디바이스 드라이버 소스라면 이 곳에 인터럽트 irq를 등록하고 사용하시면 됩니다..
>>
>>그럼 수고하세요..
>>
>>
>>>GPIO 핀에 대한 인터럽트를 사용하려고 하는데~
>>>gpio.c 라는 곳에다가 인터럽트 사용하도록 irq등록해서 쓰면 되는거 맞죠?
>>>
>>>
>>
>