mikrocontroller.net

Forum: PC-Programmierung Linux: GPIO auf Dateisystem abbilden


Autor: A. B. (funky)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein embedded Board, auf dem ein fertiges Linux läuft, über 
welches auch dei GPIOs des Boards angesteuert werden können.

das ganze erfolgt über das Dateisystem und jeder GPIO Pin kann per 
/proc/gpio/xx/value  angesprochen werden. Jenachdem ob ich eine 1 oder 0 
in die Datei schreibe, kann ich den Pin setzen/löschen. Über eine 
/config Datei im selben Ordner kann ich festlegen ob der Pin Ein oder 
Ausgang ist.

Ich habe jetzt ein eigenes Debian installiert und dort ist diese GPIO 
Geschichte nicht vorhanden(was mich auch nicht wundert)

Ich frage mich jetzt aber, was ich tun muss, um die GPIOs auch mit dem 
Debian ansprechen zu können. Ich habe beim Boardhersteller ein Dokument 
gefunden, wo zumindest die Adressen der GPIOs beschrieben sind. Ich 
finde aber nichts, wo ich die Schnittstelle zwischen Filesystem und den 
Pins herstellen kann. Hat da jemand Informationen zu?

Die Linuxbeispiele aus dem Dokument laufen so auch nicht, da trotz Root 
die fehlenden Berechtigungen moniert werden.

Evtl. hat ja jemand einen Tip parat? Ich hoffe ich muss da nicht eine 
Art Treiber schreiben?

Bisher kann ich per echo 1 >/proc/gpio... in die Datei schreiben . Wäre 
schön, wenn ich das unter dem Debian auch irgendwie hinbekommen kann

Danke schonmal

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Zeug per Speicheradresse ansprechbar ist - also nicht nur per 
IO-Adresse - dann müsste man eigentlich über /dev/mem rankommen können.

Autor: Oliver R. (superberti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

normalerweise stellt ein GPIO-Treiber die Funktionalität zur Verfügung 
und bildet die Schnittstelle im Dateisystem unter dev... bzw. 
proc... ab. Ohne Treiber also keine Kekse. Der Treiber sollte also in 
jedem Fall im Kernel oder als Modul vorhanden sein. Mit mknod wird dann 
die Verknüpfung im Dateisystem erzeugt.
Es gibt auch eine kostenlose Version von "Linux Device Drivers", wo dies 
alles bestens erklärt wird.

Gruß,

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erstmal für die Stichworte. Da muss ich mich erstmal 
einlesen...mknod, treiber etc...hab da noch überhaupt kein Plan von

Ich hoffe ja noch, das es einen generischen treiber gibt, aber die 
Hoffnung stirbt zuletzt :-O

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier:

http://www.faqs.org/docs/Linux-mini/IO-Port-Programming.html

Das kannst du dann mit Seite 3 deines pdfs vergleichen.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, wenn du ein Linux hast, bei dem das geht, muß es da ja einen 
Treiber geben. Den könntest du versuchen, für deinen Debian-Kernel zu 
übersetzen.

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke @Guido für den link...einiges davon sieht interessant aus.

@magnus: naja, das ist eine fertige Minidistribution vom Hersteller(ist 
ein auf ca 15mb abgespecktes Linux) Sourcen oder so habe ich dazu keine

Autor: Nischu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Sourcen MUSST du aber beim Hersteller beziehen können. Er muss sie 
herausgeben, sonst verstößt er gegen die GPL.

Gruß,
Nico

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Sourcen MUSST du aber beim Hersteller beziehen können. Er muss sie
> herausgeben, sonst verstößt er gegen die GPL.

Nur die Sourcen von dem, was tatsächlich auch unter GPL steht. Seine 
eigenen Kernel-Module muß er nicht unbedingt unter die GPL stellen.

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...also Sourcen habe ich dazu keine gefunden.

Ich probiere es jetzt mal mit dem Link von guido und dem PDF was ich 
habe...evtl. kann ich die IO's ja doch irgendwie direkt ansprechen

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.