Manejo del sistema Linux de interrupciones compartidas

  

En los sistemas Linux, las interrupciones se pueden compartir para que varios dispositivos puedan responder simultáneamente a una interrupción, formando una lista de interrupciones. Incluso los programas que no generen una interrupción serán ejecutados. Este artículo le enseñará cómo manejar interrupciones compartidas en sistemas Linux.

compartir interrupciones y ninguna diferencia compartida

1, request_irq () banderas de parámetros se deben establecer bandera SA_SHIRQ.

2. Para cada controlador de interrupciones registrado, el parámetro dev_id debe ser único. Un puntero a cualquier estructura de dispositivo puede satisfacer este requisito, la estructura del dispositivo generalmente se elige porque es única y puede ser utilizada por el manejador de interrupciones. No puede pasar un valor NULL a un controlador compartido.

3, el controlador de interrupciones debe poder distinguir si su dispositivo ha generado realmente una interrupción. Esto requiere tanto soporte de hardware como lógica de procesamiento en el controlador. Si el hardware no es compatible con esta función, entonces el manejador de interrupciones definitivamente estará indefenso. Simplemente no puede saber si el dispositivo correspondiente ha emitido la interrupción, o si el otro dispositivo que comparte la línea de interrupción emitió la interrupción.

Todos los controladores que comparten líneas de interrupción deben cumplir los requisitos anteriores. Mientras las reglas no compartan ningún dispositivo, las líneas de interrupción no se pueden compartir. Cuando se especifica el indicador SA_SHIRQ para llamar a request_irq (), solo puede tener éxito si la línea de interrupción no está registrada actualmente, o se especifica SA_SHIRQ para todos los manejadores registrados en la línea.

Nota: En este punto 2.6 es diferente del kernel anterior, los controladores compartidos pueden mezclar SA_INTERRUPT.

Lo anterior es compartir el manejo del sistema Linux de las interrupciones compartidas, por lo que después de que ocurra una interrupción, el programa determinará si responder o no, lo cual es fácil de implementar para la mayoría de los equipos.

Copyright © Conocimiento de Windows All Rights Reserved