I know that RTX uses the following system exception priorities, on my MCU (silabs efm32gg, CM3-based) with 3 priority bits
SVC = 6
PendSV = Systick = 7,
where lower numeric value is higher priority.
Just wondering what other RTOSes may use? FreeRtos? Micrium?
I imagine the relative priorities affect how much INT_Disable/Enable might be used. The priorities also affect how one might extend the RTOS. For instance, I added some unix-like system calls for open/close/read/write/select to/from uart devices. I used RTX as the underlying RTOS. Each of these was a 'system call', implemented via a SVC trap.
Since SVC higher than Systick+PendSV, i get for free a mutual exclusion on threads competing for uarts. Once one thread traps to 'kernel' via say a 'write', that thread cannot be preempted by a second thread that might also want to write to same device. The flip side is, as I learned the hard way (lost Systicks and thus timer events taking too long!) was that if you write an N-byte string to a uart at 9600 baud, inside an SVC call, that takes N millis. A tick freq of 1ms will lose ~N ticks, since the Systicks are blocked by SVC. I am now using DMA to offload the uart tx, so that the SVC call can return pronto.
In summary, in RTX, and its relative priorities, a SVC call must return to thread mode within the frequency of Systick.