How interrupts are handled in RTEMS

Denis Obrezkov denisobrezkov at gmail.com
Wed Jul 26 13:01:44 UTC 2017


Hello all,

I have read RTEMS manuals but still can't fully  understand how interrupts
are handled.

For example, when an interrupt occurs pc is set to an IRQ handler address.
So, the program's execution continued from that place.
And my question is: how do set_vector and rtems_interrupt_catch relate
to each other and to that IRQ function address installed in a processor
during initialization?

Should we define a source of an interrupt in that IRQ handler and jump
to the proper RTEMS IRQ table entry?

How should we deal with interrupts if they are all routed to the same
address
(they are not vectored)?  Should we install the same handler for all
interrupts?
My understanding now is that we should invoke set_vector() implemented by
us, where we should call rtems_interrupt_catch, thus installing our vector
to
a specific RTEMS table entry. Thereby, in processor IRQ handlers table we
would
have a pointers to functions the same as in RTEMS IRQ table. But what if we
have
no interrupt vectoring in a processor?

-- 
Regards, Denis Obrezkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170726/57237cbd/attachment.html>


More information about the devel mailing list