Come faccio a creare un Input Device Driver I2C Linux?

May 21

Come faccio a creare un Input Device Driver I2C Linux?


I2C (Intel-Integrated Circuit) è un tipo di protocollo chiamato un bus che viene utilizzato da schede madri di computer per comunicare con i dispositivi. Il protocollo I2C è antiquata, ma il protocollo resta popolare tra i costruttori di hardware amatoriali perché è facile da implementare. I driver di periferica in Linux interpretano I2C chiama tramite I2C-core che è incluso nella maggior parte delle distribuzioni Linux. La scrittura di un driver per un dispositivo di ingresso I2C su Linux richiede al programmatore di importare il I2C-core e avviare il dispositivo. Il nome del dispositivo e l'indirizzo devono essere fornite dal produttore del dispositivo.

istruzione

1 Avviare il terminale premendo il tasto "Ctrl", "Alt" e "t" simultaneamente. La finestra del prompt dei comandi del terminale apparirà sullo schermo.

2 Installare il i2c-core se non è già disponibile sul sistema. Al prompt dei comandi digitare "sudo apt-get install i2c-core", quindi premere "Invio". Il terminale richiede la password di root, digitare la password e premere "Invio". Il terminale verrà installato il i2c-core.

3 Modificare le directory al codice bin. Ad esempio, se il bidone codice è tenuto a "/ home / bin" tipo "cd / home / bin" al prompt dei comandi e premere "Invio".

4 Avviare "Gedit." Digitare "gedit" al prompt dei comandi e premere "Invio".

5 Copiare il codice seguente alla finestra Gedit:

includere i2c-core.h

struct statica i2c_device_id <UNICO prefix> _idtable [] = {

{ "&lt;UNIQUE PREFIX>", &lt;DEVICE ID> },

};

MODULE_DEVICE_TABLE (I2C, <UNICO prefix> _idtable);

struct statica i2c_driver <UNICO prefix> _driver = {

.driver = {

.name = "& lt; prefisso univoco>",

},

.id_table = & lt; prefisso univoco> _ids,

.probe = & lt; prefisso univoco> _probe,

.Rimuovere = & lt; prefisso univoco> _remove,

}

static int __init <UNICO prefix> _init (void)

{

return i2c_add_driver(&&lt;UNIQUE PREFIX>_driver);

}

static __exit vuoto <UNICO prefix> _cleanup (void)

{

i2c_del_driver(&foo_driver);

}

<Prefisso univoco> _init ();

Sostituire <ID device> con l'ID del dispositivo, come prescritto dal costruttore. Sostituire <UNICA prefix> con un nome pertinente per il driver. Il prefisso deve essere composto da lettere minuscole e senza spazi. Utilizzare lo stesso prefisso tutto il mondo che <prefisso univoco> si verifica.

6 Salvare il codice cliccando su "File", "Salva". Nome è lo stesso come il tuo <prefisso univoco> dal passaggio precedente con l'estensione ".c". Ad esempio, se il <UNICO prefix> "era" iicmouse "chiamare il file" iicmouse.c ".

7 Chiudere la finestra "gedit" cliccando sulla "x" in alto a destra.

8 Compilare il driver di periferica. Al prompt dei comandi digitare: "gcc -c ./<DRIVER FILE>" sostituire <driver del file> con il nome del file appena creato e premere "Invio". Il driver verrà compilato.

9 Collegare un dispositivo di input I2C in una porta I2C.

10 Digitare il nome del driver di periferica che avete appena creato al prompt dei comandi, quindi premere "Invio". Il dispositivo avvierà.