ISR handler.

Joel Sherrill joel.sherrill at OARcorp.com
Thu Apr 15 13:48:36 UTC 2010


On 04/14/2010 06:44 AM, Nick Thomas wrote:
> 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?
>
>    
No.  It is more likely a bug in the code that called your handler.
That code is responsible for incrementing nest level.

--joel
> Regards
>
> Nick
>
> -----------------------------
> Nick Thomas
> Email: nick.thomas at pixsan.com
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>    


-- 
Joel Sherrill, Ph.D.             Director of Research&  Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985





More information about the users mailing list