About interrupt processing

Richi Dubey richidubey at gmail.com
Mon May 24 09:45:21 UTC 2021


Hi,

When the CPU issues an interrupt, and when the interrupt is processed,
where does it run the code from? Is there a place where the commands are
written based on the interrupt number?

I followed the call to  _Scheduler_SMP_Allocate_processor_exact
<https://git.rtems.org/rtems/tree/cpukit/include/rtems/score/schedulersmpimpl.h#n660>,
which calls :
_Thread_Dispatch_update_heir
<https://git.rtems.org/rtems/tree/cpukit/include/rtems/score/threadimpl.h#n1207>
 -> _Thread_Dispatch_request
<https://git.rtems.org/rtems/tree/cpukit/include/rtems/score/threaddispatch.h#n247>
which
calls _CPU_SMP_Send_interrupt(), the implementation of which is bsp
dependent:

on arm a9
<https://git.rtems.org/rtems/tree/bsps/arm/shared/start/arm-a9mpcore-smp.c#n58>
on raspberry pi
<https://git.rtems.org/rtems/tree/bsps/arm/raspberrypi/start/bspsmp.c#n73>
on i386
<https://git.rtems.org/rtems/tree/bsps/i386/pc386/start/bspsmp.c#n66>
and so on...

So, can someone please help me know what gets executed right after the
interrupt is accepted by the CPU from the IRQ? Can someone point me to the
source code - where the CPU possibly checks the value of heir and does a
context switch?

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210524/7dc4267e/attachment.html>


More information about the devel mailing list