<div dir="ltr">Hello all, <div><br></div><div>I have read RTEMS manuals but still can't fully  understand how interrupts</div><div>are handled.</div><div><br></div><div>For example, when an interrupt occurs pc is set to an IRQ handler address.</div><div>So, the program's execution continued from that place. </div><div>And my question is: how do set_vector and rtems_interrupt_catch relate </div><div><div>to each other and to that IRQ function address installed in a processor</div><div>during initialization?</div><div><br></div><div>Should we define a source of an interrupt in that IRQ handler and jump</div><div>to the proper RTEMS IRQ table entry?</div><div><br></div><div>How should we deal with interrupts if they are all routed to the same address</div><div>(they are not vectored)?  Should we install the same handler for all interrupts?</div><div>My understanding now is that we should invoke set_vector() implemented by</div><div>us, where we should call rtems_interrupt_catch, thus installing our vector to </div><div>a specific RTEMS table entry. Thereby, in processor IRQ handlers table we would</div><div>have a pointers to functions the same as in RTEMS IRQ table. But what if we have</div><div>no interrupt vectoring in a processor? </div><div><br></div>-- <br><div class="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>