Is there any Guru who knows why interrupts are disabled in IS R?
Phil Torre
ptorre at zetron.com
Tue Mar 12 02:21:10 UTC 2002
On Thu, Mar 07, 2002 at 10:57:14PM +0200, Leon Pollak wrote:
> Hello Gurus,
> I shall be very thankful for the explanation of the following
moment:
> I look into PPC code file irq_stub.S routine __ISR_handler I see
that
> all
> interrupts are disabled almost immediatly. They are reenabled at the end
of
> the ISR, after the user ISR has finished its processing, almost at the
point
> of exit from __ISR_handler.
> This text contains the comment after the _ISR_NestLevel
incrementing:
> "From here on out, interrupts can be re-enabled, RTEMS convention says
not".
> Can somebody explain me why interrupts must be disabled inside the
> user ISR?
All of the right code is already in place to do the nesting, but no one ever
turns the interrupt enable bit back on. I tried enabling interrupts right
below that comment, but found that some interrupts (like the PIT) will
fire again immediately if their event bit hasn't been turned of by the ISR.
So, we now use a macro that sets MSR[EE] in each ISR; everyone has been told
to insert that macro in their ISRs after it's safe to re-enable interrupts.
-Phil
--
=====================================================================
Phil Torre phone: 425-820-6363 x234
Design Engineer email: ptorre at zetron.com
Switching Systems Group fax: 425-820-7031
Zetron, Inc. web: http://www.zetron.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20020311/293efdd0/attachment-0001.html>
More information about the users
mailing list