[ell-i-developers] Re: About PendSV and SVCall

  • From: Ivan Raul <supra.material@xxxxxxxxx>
  • Date: Mon, 17 Feb 2014 21:20:11 +0200

> That said, and while I admit I may well be wrong, I think the *same*
> priority level interrupts don't preempt each other.  Hence, if we configure
> PendSV and SVCall to be on the same priority level, they shouldn't
> interfere each other.  Please correct me (with reference) if I'm wrong; I
> want to know.  Second, there is nothing that prevents you from executing
> the same code in different interrupt contexts.  Hence, we should be able to
> create just a single handler that handles both PendSV and SVCall, or
> alternatively to jump from SVCall directly to somewhere in PendSV code, if
> so needed.
That is completely right. Citing ARMv6M-Architecture Reference Manual, page
221, section B1.5.4:

*When multiple pending exceptions have the same priority number, the
pending exception with the lowest exception number takes precedence. When
an exception is active, only an exception with a higher priority can
preempt it.*

In other words, exceptions of the same priority level can't preempt each
other. The priority number is only to select the order in which of the
possible multiple pending exceptions will be serviced.

BR, Ivan

Other related posts: