Warum soll eine End-of-Interrupt für das Master-PIC verursacht einen dreifachen Fehler (Neustart)?

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

  •  23-08-2019
  •  | 
  •  

Frage

Ok, in der Schule entwickeln wir ein Betriebssystem. Mein Projekt ist ein ATA-Festplattentreiber zu entwickeln. Ich dachte, ich meine Interrupt-Service-Routine funktioniert ganz gut war, als mein Professor wies darauf hin, dass ich nur End-of-Interrupt-Befehle an den Slave-PIC, und nicht den Master als auch sendete.

Mein Problem ist, dass, wenn ich die End-of-Interrupt zum Master-PIC zu senden, es einen dreifachen Fehler verursacht, die dann mein System bewirkt, dass neu zu starten. Jetzt habe ich un / kommentierte ein paar Zeilen, und es scheint, dass, wenn die Funktion die End-of-Interrupt an das Master-PIC senden im Code verbleibt ich die dreifachen Fehler zu bekommen.

Jetzt bin ich ganz sicher, die folgenden Möglichkeiten:

  1. Unterbrechungen gesperrt sind auf meine ISR Eingabe
  2. ich richtig schickt das End-of-Interruptbytes (Klasse getestet)
  3. Ich bin nicht erneut die Anerkennung der gleichen Interrupt

Dies wurde zu massiver Frustration, so dass ich hoffe, dass jemand mir einige Hinweise geben kann, ohne dass wir den Code sehen benötigt.

Danke!

War es hilfreich?

Lösung

Ich kann nur auf diese erraten. Hier sind einige Dinge zu überprüfen.

  • Ist das EOI außerhalb des Segmentgrenze?
  • Ist das EOI auf einer Nur-Lese-Seite?
  • Ist Ihr Interrupt-Handler auf der richtigen Berechtigungsstufe das EOI zugreifen?
  • Sind Sie mit dem richtigen Segmentregister?

Jede dieser könnte einen Fehler verursachen. Das wiederum könnte einen doppelten oder dreifache Fehler verursachen, wenn die Deskriptortabellen entweder beschädigt oder wurden nicht richtig eingerichtet zu beginnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top