Herunterladen Inhalt Inhalt Diese Seite drucken

Interrupt-Service-Routine (Intrservicefunction) - Phoenix Contact IBS PCI DDK UM Anwenderhandbuch

Device driver development kit zu anschaltbaugruppen für pc-systeme mit pci-bus
Inhaltsverzeichnis

Werbung

IBS PCI DDK UM
5-18
Message-Counter in der Message-Kontrollstruktur msgCtrl dekremen-
tieren.
Adresse der ausgelesenen Mailbox in das entsprechende Acknow-
ledge-Vector-Register eintragen.
Durch Beschreiben des entsprechenden Set-HS-Ax/Bx-Registers das
zugehörige Bit in einem der Handshake-Register setzen, und so dem
sendenden Node anzeigen, dass die Mailbox wieder frei ist.
Funktion mit dem Rückgabewert ERR_OK beenden.
Auf das Rücksetzen des „Mailbox frei"-Bits wird nicht gewartet. Diese Auf-
gabe wird vom sendenden Node durchgeführt. Und solange jeweils nur
eine Mailbox zwischen den Nodes verwendet wird, kann keine neue Nach-
richt übertragen werden, bis der sendende Node selbst erkannt hat, dass
die Mailbox frei ist. Ein Überschreiben eines noch gültigen Wertes im AVR
ist daher nicht zu befürchten. Eine Abfrage, ob das AVR frei ist, ist erst bei
der Verwendung von mehreren Mailboxen zwischen zwei Nodes notwen-
dig.
Die Adressen der Handshake- und Set-HS-Ax/Bx-Register sind über die
global verfügbare Struktur avrCtrl (Datentyp T_AVR_CTRL) bestimmbar.
Die dafür notwendigen Parameter Source_Node_Number (Zeilenwert) und
Destination_Node_Number (Spaltenwert) ergeben sich aus der Node-
Handle-Kontrollstruktur nodeHdCtrl (Datentyp T_NODE_HD_CTRL) und
der allgemeinen Gerätetreiber-Kontrollstruktur devCtrl (Datentyp
T_DEV_CTRL).
5.3.8

Interrupt-Service-Routine (intrServiceFunction)

Die Interrupt-Service-Routine stellt einen zentralen Teil innerhalb des Ge-
rätetreibers dar. Insbesondere die Abwicklung von Teilen des Mailbox-Pro-
tokolls (z. B. Freigabe der verwendeten Mailboxen, Empfang von Nachrich-
ten, Auslesen der Send-Vector-Register, usw.) erfolgt innerhalb der
Interrupt-Service-Routine. Zusätzlich werden die Sys-Fail- und MPM-
Node-SG-Int-x-Interrupts von dieser Routine bearbeitet.
Der Ablauf der Routine läßt sich folgendermaßen darstellen:
Durch Auslesen des MPM-Status-Registers Interrupt-Ursache(n) fest-
stellen; mögliche Interrupt-Quellen sind: Sys-Fail-Interrupt, MPM-
Node-SG-Int-x-Interrupt und Handshake-Interrupt
6189A

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis