www.mikrocontroller.net

Forum: PC-Programmierung Treiberkonzept unter Linux


Autor: Manuel B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(entfernt)

Autor: Andreas B. (andreasb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: m@u (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manuel B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(entfernt)

Autor: Falk Willberg (dl3daz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.