Im Intel Software-Entwicklerhandbuch heißt es, dass die Interrupt-Vektoren 32-255 normalerweise für externe IO-Devices benutzerdefiniert sind. In meiner Systemprogrammierklasse muss ich einen einfachen Gerätetreiber entwickeln. Meine Frage ist, wie kann ich einen bestimmten Interrupt-Vektor für ein bestimmtes Gerät definieren? Ist das mit dem BIOS getan?Wie erkenne ich gerätespezifische Interrupts auf x86?
Hinweis: Wir entwickeln ein einfaches Betriebssystem, so dass meine Situation ziemlich spezifisch ist, aber am Ende muss ich verstehen, wie dies alles auf einem x86-System passiert. Gegenwärtig ist unser System so eingerichtet, dass ein paar Interruptvektoren über 32 Geräten wie einer seriellen Schnittstelle und einer Tastatur zugewiesen werden. Beim Lesen des Datenblattes für den Intel 82801EB ICH5 IO-Controller, speziell im Abschnitt über die 8259 PICs, heißt es, dass IRQ15 der sekundäre IDE-Kanal ist. Wie würde das schließlich als Interrupt-Vektor auf den Stack gelegt werden?
Ich kann nur so verwirrt sein, dass diese Frage keinen Sinn ergab, also entschuldige ich mich im Voraus.
EDIT: So hat unsere Systemprogrammierklasse ein sehr einfaches Betriebssystem, das Kernroutinen zum Installieren von ISRs aufweist, um spezifische Interrupts mit der Vektornummer zu behandeln. In unserer Klasse im letzten Quartal gab uns der Professor eine Header-Datei, die die Tastatur als Vektornummer 0x2c oder etwas Ähnliches definierte. Ich versuche herauszufinden, wie die primären und/oder sekundären IDE-Kanalunterbrechungen unter Verwendung unserer Kernroutinen verschiedenen ISRs zugeordnet werden. Für den Moment haben alle unbenutzten Interrupt-Vektoren einen Standard-Handler, der Nachrichten drucken würde, wenn ein Interrupt aufgetreten wäre, so dass IDE-Interrupts im Moment nicht gerade aktiv sind, aber das ist eine andere Frage.
Ihre Frage ergibt Sinn. Ich erinnere mich vage, dass die Maus IRQ 31 verwendet? Es tut uns leid.Ich nutze es nicht. –
Ich glaube, ich habe gerade eine gute Quelle gefunden: http://heim.ifi.uio.no/~stanisls/helppc/int_table.html http://heim.ifi.uio.no/~stanisls/helppc/8259 .html –