PendSV
Una excepción de Cortex-M pensada para ser aplazada; por eso casi todos los RTOS cambian de tarea ahí.
PendSV, Pendable Service Call, es la excepción número 14 de Cortex-M. No la dispara ningún periférico sino el propio software, activando un bit en el registro ICSR. El truco está en que se configura con la prioridad más baja del sistema, de modo que solo se ejecuta cuando todas las demás interrupciones han terminado.
Es justo lo que necesita un RTOS. El manejador de SysTick decide que debe correr otra tarea, pero cambiar de pila en medio de una cadena de interrupciones anidadas es buscarse problemas. Así que marca PendSV como pendiente, y el cambio de contexto ocurre cuando el hardware ya vuelve al modo hilo. FreeRTOS, Zephyr y la mayoría de núcleos para Cortex-M funcionan así. Su hermana SVC, en cambio, es síncrona y sirve para llamadas al sistema.