¿Por qué un final de interrupción para el PIC maestro causaría una falla triple (reinicio)?

StackOverflow https://stackoverflow.com/questions/888603

  •  23-08-2019
  •  | 
  •  

Pregunta

Ok, en la escuela estamos desarrollando un sistema operativo.Mi proyecto ha sido desarrollar un controlador de disco duro ATA.Pensé que mi rutina de servicio de interrupción funcionaba bastante bien cuando mi profesor señaló que solo estaba enviando comandos de fin de interrupción al PIC esclavo, y no al maestro también.

Mi problema es que cada vez que envío el fin de la interrupción al PIC maestro, se produce una falla triple que luego hace que mi sistema se reinicie.Ahora he descomentado/comentado un montón de líneas y parece que cada vez que la función para enviar el final de la interrupción al PIC maestro se deja en el código, aparece el error triple.

Ahora estoy bastante seguro de lo siguiente:

  1. las interrupciones se desactivan al ingresar a mi ISR
  2. Estoy enviando correctamente el byte de fin de interrupción (probado en clase)
  3. No vuelvo a reconocer la misma interrupción.

Esto ha causado una gran frustración, por lo que espero que alguien pueda orientarme sin necesidad de ver nuestro código.

¡Gracias!

¿Fue útil?

Solución

Sólo puedo imaginar en este. Aquí hay algunas cosas que debe comprobar.

  • ¿Es la EOI fuera de su límite de segmento?
  • ¿Es la EOI en una página de sólo lectura?
  • Es el manejador de interrupciones en el nivel de privilegio correcto para acceder a la EOI?
  • ¿Está utilizando el registro de segmento correcto?

Cualquiera de ellos podría causar una avería. Que a su vez podría causar un fallo doble o triple si las tablas de descriptores están dañado o fueron mal ajustados hasta el principio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top