Come usare IRQ PCI con driver di periferica Linux PCI

May 15

Come usare IRQ PCI con driver di periferica Linux PCI


PCI, o Peripheral Component interconnessione, è il bus utilizzato dalla scheda madre per la connessione a dispositivi. Quando più dispositivi simultaneamente collegati alla scheda madre, devono condividere l'unità centrale di elaborazione o CPU. Compiono questo con richieste di interrupt, o IRQ. I driver di periferica per i sistemi Linux assegnare un numero di IRQ per la periferica PCI. Il dispositivo utilizza l'IRQ per notificare la CPU che il dispositivo ha bisogno della sua attenzione. La CPU gestisce IRQ in uno schema di priorità predefinita.

istruzione

1 Avviare il terminale premendo il tasto "Ctrl", "Alt" e "T" simultaneamente.

2 Generare un elenco dei dispositivi PCI collegati al sistema. Al prompt dei comandi, digitare "lspci" e premere "Invio". Questo genera un elenco di tutti i dispositivi PCI.

3 Annotare l'etichetta PCI per il dispositivo in questione. Cercare il nome del dispositivo che ha bisogno di modifiche al driver. Sul lato più a sinistra della linea con il nome del dispositivo, c'è un codice a cinque cifre nel seguente formato: "xx: xx, x." Questo è l'etichetta PCI. Scriverlo su un pezzo di carta zero.

4 Verificare se il dispositivo ha già un IRQ assegnato. Al prompt dei comandi, digitare "sudo cat / proc / interrupts" e premere "Invio". Esamina l'elenco per il dispositivo in questione. Se è elencato da un IRQ, il processo è completo.

5 Aprire il codice di driver di periferica digitando "gedit", quindi uno spazio e poi il percorso per il codice del driver. Ad esempio, se il percorso del driver è /home/code/driver1.c, digitare "gedit /home/code/driver1.c" e premere "Invio". Gedit apre il file di codice.

6 Richiedere un IRQ dal codice driver di periferica. In un editor di codice, incollare il seguente codice alla funzione dispositivo di iniziazione:

if (short_irq> = 0) {

result = request_irq(short_irq, short_interrupt,

SA_INTERRUPT, "corto", NULL);

if (risultato) {

printk (KERN_INFO "breve: non è possibile ottenere assegnato IRQ% i \ n",

short_irq);

short_irq = -1;

}

altro {

OUTB (0x10, short_base + 2);

}

}

7 Salvare le modifiche al driver di periferica facendo clic su "File", "Salva".

8 Compilare il driver di periferica. Nella riga di comando, digitare "gcc -c", quindi uno spazio e poi il nome del file di origine. Utilizzando l'esempio precedente, digitare "gcc -c /home/code/device1.c" e premere "Invio". Il driver di periferica viene compilato.

9 Riavviare il computer per attivare il driver di periferica appena modificato.