Verwendung von PCI-IRQs mit Linux PCI-Gerätetreiber

January 7

Verwendung von PCI-IRQs mit Linux PCI-Gerätetreiber

PCI oder periphere Komponente Zusammenschaltung, ist der Bus, der von der Hauptplatine zum Anschließen von Geräten. Wenn mehrere Geräte gleichzeitig mit dem Motherboard verbunden sind, müssen sie die Central Processing Unit oder CPU austauschen. Sie erreichen dies mit Interrupt-Anforderungen oder IRQs. Gerätetreiber für Linux-Systeme weisen eine IRQ-Nummer die PCI-Gerät. Das Gerät verwendet den IRQ, um der CPU zu informieren, dass das Gerät seine Aufmerksamkeit braucht. Die CPU übernimmt IRQs an einem vordefinierten Priorität.

Anweisungen

1 Starten Sie das Terminal durch Drücken von "Strg", "Alt" und "T" gleichzeitig.

2 Erstellen Sie eine Liste der PCI-Geräte an das System angeschlossen. An der Eingabeaufforderung den Befehl "Lspci" und drücken Sie "Enter." Dies erzeugt eine Liste aller PCI-Geräte.

3 Notieren Sie die PCI-Bezeichnung für das betreffende Gerät. Suchen Sie nach den Namen des Geräts, die Treiber Änderungen benötigt. Auf der äußersten linken Seite der Linie den Gerätenamen, gibt es einen fünfstelligen Code im folgenden Format: "xx:xx.x." Dies ist das PCI-Label. Schreib es auf ein Stück Papier von Grund auf.

4 Überprüfen Sie ob das Gerät bereits eine IRQ zugewiesen hat. An der Eingabeaufforderung "Sudo Katze Interrupts" und drücken Sie "Enter." Durchsuchen Sie die Liste für das betreffende Gerät. Wenn es durch einen IRQ aufgeführt ist, ist der Vorgang abgeschlossen.

5 Öffnen Sie der Treibercode Gerät durch Eingabe von "Gedit," dann ein Leerzeichen und dann den Pfad zu den Treibercode. Beispielsweise wenn der Treiberpfad /home/code/driver1.c ist, geben Sie "Gedit /home/code/driver1.c" und drücken Sie "Enter." Gedit öffnet die Codedatei.

6 Einen IRQ von der Gerät-Treiber-Code anfordern. Fügen Sie in einem Editor den folgenden Code an die Gerät-Einleitung-Funktion:

Wenn (Short_irq > = 0) {}

result = request_irq(short_irq, short_interrupt,

SA_INTERRUPT, "short", NULL);

if (result) {

printk(KERN_INFO "short: can't get assigned irq %i\n",

short_irq);

short_irq = -1;

}

else {

outb(0x10,short_base+2);

}

}

7 Speichern von Änderungen an den Treiber durch Klicken auf "Datei" "Speichern."

8 Kompilieren Sie den Gerätetreiber. Geben Sie in der Befehlszeile "Gcc - C," dann ein Leerzeichen und dann den Namen der Quelldatei. Mit dem vorherigen Beispiel, geben Sie "Gcc - C /home/code/device1.c" und drücken Sie "Enter." Der Gerätetreiber wird kompiliert.

9 Starten Sie den Computer um den neu modifizierten Treiber zu aktivieren.