* [Xenomai-help] Registering Interrupt Handler [Scanned]
@ 2006-12-14 12:35 Niklaus Burren
2006-12-14 13:32 ` Gilles Chanteperdrix
0 siblings, 1 reply; 4+ messages in thread
From: Niklaus Burren @ 2006-12-14 12:35 UTC (permalink / raw)
To: xenomai
Hello
I try to register an interrupt handler for an externel interrupt(GPIO
105) in a xenomai (2.2.2) kernel module on a ARM processor (PXA 270).
I create a interrupt object with the rt_intr_create() function without
an error. After that I enable the interrupt with rt_intr_enable(). When
I run the kernel module on the PXA270 board and put a square signal to
the GPIO 105 pin the interrupt handler is never called.
// Interrupt Handler
int int_handler(struct xnintr *intr)
{
printk("Interrupt detected\n");
return RT_INTR_HANDLED;
}
----
// Enalbe Interrupt in init_module()
err = rt_intr_create(&intr_desc, "GPIO_INT", 10, &int_handler, NULL, NULL);
rt_intr_enable(&intr_desc);
On PXA270 all externel interrupts on GPIO's have the same interrupt
number (10). Is that a problem? When I get the pin status from the pin
level register GPLR3 I can detect the square signal at the pin. But the
interrupt handler function int_handler() is never called.
Is there any other initialization that I had to do?
Kind Regards
Niklaus Burren
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [Xenomai-help] Registering Interrupt Handler [Scanned]
2006-12-14 12:35 [Xenomai-help] Registering Interrupt Handler [Scanned] Niklaus Burren
@ 2006-12-14 13:32 ` Gilles Chanteperdrix
[not found] ` <45825668.3030703@domain.hid>
0 siblings, 1 reply; 4+ messages in thread
From: Gilles Chanteperdrix @ 2006-12-14 13:32 UTC (permalink / raw)
To: Niklaus Burren; +Cc: xenomai
Niklaus Burren wrote:
> Hello
>
> I try to register an interrupt handler for an externel interrupt(GPIO
> 105) in a xenomai (2.2.2) kernel module on a ARM processor (PXA 270).
> I create a interrupt object with the rt_intr_create() function without
> an error. After that I enable the interrupt with rt_intr_enable(). When
> I run the kernel module on the PXA270 board and put a square signal to
> the GPIO 105 pin the interrupt handler is never called.
>
> // Interrupt Handler
> int int_handler(struct xnintr *intr)
> {
> printk("Interrupt detected\n");
> return RT_INTR_HANDLED;
> }
>
> ----
>
> // Enalbe Interrupt in init_module()
> err = rt_intr_create(&intr_desc, "GPIO_INT", 10, &int_handler, NULL, NULL);
>
> rt_intr_enable(&intr_desc);
>
> On PXA270 all externel interrupts on GPIO's have the same interrupt
> number (10). Is that a problem? When I get the pin status from the pin
> level register GPLR3 I can detect the square signal at the pin. But the
> interrupt handler function int_handler() is never called.
The I-pipe code demultiplexes the IRQ 10 and triggers handlers for irq
numbers after 34. The macro IRQ_GPIO, defined in
include/asm-arm/arch-pxa/irqs.h allow you to get the irq number
associated with a particular GPIO.
So, if you want to be notified of an interrupt on GPIO105, you should
register an handler for irq IRQ_GPIO(105).
--
Gilles Chanteperdrix
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-12-15 17:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-14 12:35 [Xenomai-help] Registering Interrupt Handler [Scanned] Niklaus Burren
2006-12-14 13:32 ` Gilles Chanteperdrix
[not found] ` <45825668.3030703@domain.hid>
2006-12-15 10:09 ` Gilles Chanteperdrix
[not found] ` <45828192.4020105@domain.hid>
2006-12-15 17:07 ` Gilles Chanteperdrix
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.