ISR handler.

Nick Thomas nick.thomas at
Wed Apr 14 11:44:48 UTC 2010


This is possibly in a FAQ, or a basic error on my part.

I am using rtems 4.7.1 with PowerPC.

I have just noticed that my ISR routines are declared like:
void irr_intr(void);

But, the interrupt handlers are installed using ictrl_set_vector, which
requires an rtems_isr_entry function which is declared as :

typedef rtems_isr ( *rtems_isr_entry )(rtems_vector_number);

So, does that mean that my isr handler should really be:

rtems_isr irr_intr(rtems_vector_number v);

I have seen some odd behavior regarding interrupts on this platform, mainly
occasions where the _ISR_nest_level variable gets stuck at 1. Could this be
because the mismatched args to the function has stomped on the stack and
lost the return address?



Nick Thomas
Email: nick.thomas at 

More information about the users mailing list