NRF51822 ¿La interrupción tiene un mecanismo de preferencia?
El final de este artículo también incluirá un análisis del código fuente de la interrupción suave. , que describe detalladamente el problema.
Tanto las interrupciones duras como las suaves pueden adelantarse (o llamar a interrupciones) excepciones (generalmente llamadas al sistema), pero las excepciones no pueden adelantarse a las interrupciones duras ni a las suaves.
El kernel no permite que las interrupciones duras ni las suaves (siempre que estén en el contexto de interrupción) sean adelantadas durante la ejecución; en otras palabras, el cambio de proceso nunca está permitido en el contexto de interrupción. (Mi entendimiento personal es que dado que los manejadores de interrupciones deben completarse más rápido y los manejadores de interrupciones se pueden anidar, los manejadores de interrupciones no deben bloquearse; de lo contrario, será difícil garantizar el rendimiento).