Hvordan lager jeg en I2C Linux Input Device driver?

Hvordan lager jeg en I2C Linux Input Device driver?


I2C (Intel-Integrated Circuit) er en type protokoll kalt en buss som brukes av datamaskinen hovedkort for å kommunisere med enheter. I2C protokollen er foreldet, men protokollen er fortsatt populær blant amatør maskinvare utbyggere fordi det er lett å implementere. Enhetsdrivere i Linux tolke I2C samtaler via I2C-kjerne som er inkludert i de fleste Linux-distribusjoner. Skrive en driver for en I2C inndataenhet på Linux krever programmerer for å importere I2C-core og starte enheten. Navn og adresse enheten skal gis av produsenten av enheten.

Bruksanvisning

1 Start terminal ved å trykke "Ctrl", "Alt" og "t" samtidig. Terminalen kommandovindu vil vises på skjermen.

2 Installer i2c-core hvis det ikke allerede er tilgjengelig på systemet. Ved ledeteksten skriver du inn "sudo apt-get install i2c-core", og trykk "Enter". Terminalen vil be for root-passordet, skriver du inn passordet og trykk "Enter". Terminalen vil installere i2c-kjernen.

3 Endre kataloger til koden bin. For eksempel, hvis kode bin holdes på "/ home / bin" type "cd / home / bin" ved ledeteksten, og trykk "Enter".

4 Launch "Gedit." Skriv "gedit" ved ledeteksten, og trykk "Enter".

5 Kopier følgende kode i Gedit vinduet:

inkluderer i2c-core.h

statisk struct i2c_device_id <unikt prefiks> _idtable [] = {

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

};

MODULE_DEVICE_TABLE (i2c, <unikt prefiks> _idtable);

statisk struct i2c_driver <unikt prefiks> _driver = {

.driver = {

.name = "& lt; unikt prefiks>",

}

.id_table = & lt; unikt prefiks> _ids,

.probe = & lt; unikt prefiks> _probe,

.Fjern = & lt; unikt prefiks> _remove,

}

static int __init <unikt prefiks> _init (void)

{

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

}

static void __exit <unikt prefiks> _cleanup (void)

{

i2c_del_driver(&foo_driver);

}

<Unikt prefiks> _init ();

Bytt <ENHET ID> med ID-enheten som foreskrevet av produsenten. Bytt <unikt prefiks> med et relevant navn på sjåføren. Prefikset bør bestå av små bokstaver og ingen mellomrom. Bruk samme prefikset overalt at <unikt prefiks> oppstår.

6 Lagre koden ved å klikke på "File", "Lagre". Name it det samme som <unikt prefiks> fra forrige trinn med utvidelsen ".c". For eksempel, hvis din <unikt prefiks> "var" iicmouse "kaller filen" iicmouse.c ".

7 Lukk "gedit" vinduet ved å klikke på "x" i øvre høyre hjørne.

8 Kompilere enhetsdriveren. Ved ledeteksten skriver: "gcc -c ./<DRIVER FILE>" erstatte <DRIVER FILE> med navnet på filen du nettopp opprettet trykk "Enter". Sjåføren vil kompilere.

9 Plugg en I2C inndataenhet til en I2C port.

10 Skriv inn navnet på enhetsdriveren som du nettopp opprettet ved ledeteksten, og trykk deretter på "Enter". Enheten vil starte.