todos saben que el controlador de interrupciones debe ser lo más corto posible. y agregar funciones como printk
para la depuración dentro de un manejador de interrupciones es algo que no se debe hacer. En realidad, lo intenté antes cuando estaba depurando el kernel de Linux para un dispositivo de char de interrupción que escribí, y arruinó el tiempo del controlador.printk dentro de un manejador de interrupciones, ¿es realmente tan malo?
La pregunta que tengo, ¿por qué está sucediendo esto? printk
¡la función está en el búfer! significa, por lo que entiendo, que los datos se insertan en una cola, y que se están manejando más tarde, muy probablemente después de que el controlador de interrupciones haya finalizado.
¿Por qué no funciona?
Considere la posibilidad de que su llamada de impresión solo llene el búfer, forzándolo a enjuagar. ¿Qué sucederá al hacer E/S en su manejador de interrupciones? –
SÍ, es realmente tan malo. Gracias y buenas noches. –
It * does * work. 'printk' está diseñado para ser llamado desde el contexto de interrupción o proceso. Si no fuera así, no sería de mucha utilidad para la depuración. Sin embargo, obviamente no lo llamas en contexto de interrupción en un controlador de producción. – EML