Red de conocimiento informático - Aprendizaje de programación - NRF51822 ¿La interrupción tiene un mecanismo de preferencia?

NRF51822 ¿La interrupción tiene un mecanismo de preferencia?

Actualmente, si ingresa do_softirq en irq_exit ejecutado después de salir de una interrupción de hardware, regresará inmediatamente, evitando así la situación que usted describe.

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).