Forum: PC-Programmierung Treiberkonzept unter Linux


von Manuel B. (Gast)


Lesenswert?

(entfernt)

von Andreas B. (andreasb)


Lesenswert?

Ich war gerade auf der Seite von Ulrich Radig, da ist ein Link für Linux
Treiberprogrammierung:
http://ezs.kr.hsnr.de/TreiberBuch/html/index.html

mfg Andreas

von m@u (Gast)


Lesenswert?

Bei o'reilly.com findest du das Openbook-Projekt.
http://www.oreilly.com/openbook/ Dort sind Bücher zur
Treiberprogrammierung unter Linux 2.4 (2nd edition) und 2.6 (3d
edition) zu finden. Nebst dem sind auch zu vielen andern Themen Bücher
in Englisch und einige wenige in Deutsch vorhanden.

Viel Spass damit
mfg Matthias

von tom (Gast)


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

von Manuel B. (Gast)


Lesenswert?

(entfernt)

von Falk W. (dl3daz) Benutzerseite


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.