Treiberkonzept unter Linux

Gast #296562
Lesenswert?

Hi,

was Linux betrifft:

Stichwort für Dich ist: Linux und Module

a) es ist sinnvoll, sich ein Buch zu kaufen und zuerst mal mit Buch so
einiges auszuprobieren

b) WICHTIG! Du solltest wissen, für welchen Kernel unter Linux du
arbeiten willst! 2.4.x und 2.6.x haben da schon einges an
Unterschieden. Das geht schon beim Make los!

Schönen Tag noch,
Thomas
Persönliche Seite #296564
Lesenswert?

> interessiert mich lediglich die Kommunikation zwischen Software und
> Treiber.

Das ist (wie meistens bei Unixartigen) grundsätzlich sehr einfach.

Es gibt 5 Funktionen, die der Treiber dem "User" anbietet:

open: "Öffne das Gerät", Bsp.: fd=open("/dev/tty",O_RDWR...);

Ab hier wird mit dem "Filedescriptor", hier fd, weitergearbeitet. Das
ist einfach eine ganze Zahl.

close: "Schließe das Gerät" Bsp.: close(fd);

read: "Lese Daten aus dem Gerät". Bsp.: read(fb,buffer,10); Liest 10
Bytes (oder weniger) aus dem Gerät.

write: "Schreibe Daten in das Gerät" Bsp: write(fd,buffer,10);...

Bis jetzt war kein Unterschied zwischen Dateien, Festplatten,
Streamern, Pipes, Sockets usw. zu sehen.
Das ist auch grundsätzlich so beabsichtigt.

Auf die besonderen Eigenschaften muß spätestens bei der fünften
Funktion, ioctl geachtet werden.

Mit ioctl kann man die Baudrate einer seriellen Schnittstelle
einstellen, nicht aber die eines Bandlaufwerkes.

Mit ioctl kann man ein Band auswerfen, aber keine serielle
Schnittstelle ;-)

Und spätestens jetzt ist die Frage: Welche Art von Gerät willst Du
benutzen?

Hoffe geholfen zu haben,
Falk
P.S.: "man open" "man close" etc. sind Deine Freunde.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren