[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ISR handler.



Hi,

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?


Regards

Nick

-----------------------------
Nick Thomas
Email: nick.thomas at pixsan.com