-
-
Erfahrener Benutzer
Roboter Genie
@Hanno:
Sorry, ich habe Deinen Beitrag überlesen.
Ja, ich habe das schonmal gemacht. Ich habe mal für eine Firma gearbeitet, die Zugsteuersysteme auf Embedded Geräten baut und programmiert.
Dort habe ich u.a. die Treiber für das Protokoll geschrieben (nennt sich WTB, falls es Dir was sagt).
Die zugrundeliegende Hardware war eine Selbstentwicklung, und die Software gehört der Firma, also kann ich weder Referenzen noch Projektdetails posten...
-
Moderator
Robotik Einstein
@thewulf00 ich verstehe. Ich hab jetzt meinen ersten Treiber geschreiben (gut ganz simpel nur zwei LEDs ansteuern) und implementiert. Jetzt gehts eben mit den restlichen Treibern weiter, die ich noch brauche für meinen Wall E
-
Moderator
Robotik Einstein
Ich sitz gerade an einem relativ einfachen Projekt wie ich finde, nämlich einen Treiber für das NGW100 zu schreiben, der eine Zahl einliest (von der Shell) und dann eine bestimmt Anzahl LEDs leuchten lässt.
Leider find ich nirgends eine Lösung/Code dafür wie ich die Zahl in meinen Treiber bekomme, sprich einlese. Die Umsetzung auf die LEDs ist kein Problem.
Hat jemand von euch nen Treiber mit einem entsprechenden Codebeispiel oder kann mir zumindest einen nennen wo ich mir das rauskopieren könnte?
-
Moderator
Robotik Einstein
Heute haben wir rausgefunden, dass man die I/O Pins direkt aus dem UserSpace ansprechen kann (ohne den Umweg über Treiber im Kernel Space). D.h. bis 10µs ist das Board hier schnell genug, dann stimmen die Zeiten nicht mehr. Alle Anwendungen die kein schnelleres Signal benötigen sind hier für geeignet. Mich würde interessieren ob das mit ein Handelsüblicher L298 angesteuert werden kann.
Ansonsten mach ich mir gerade noch Gedanken darüber wie man Analog Werte in das Board bekommt. Und natürlich wie sich Servos ansprechen lassen.
-
Erfahrener Benutzer
Roboter Genie
Um vom UserSpace mit einem Treiber zu kommunizieren, muss man i.d.R. den Umweg über Devices gehen.
-
Moderator
Robotik Einstein
@thewulf00 das ist eine Möglichkeit, ich hab aber meine I/O Pins mit Memory Map (mmap) direkt angesprochen aus dem Userspace. Gerade für Prototyping (was wir inder Robotik ja machen) ist es ein unkomplizierter Weg um zu testen ob das Programm läuft. So kann ich, wie angesprochen, vom User-Space aus arbeiten bzw. programmieren und brauch nicht für jede Änderung den Kernel neu zu bauen.
-
Erfahrener Benutzer
Roboter Genie
Dazu braucht man doch den Kernel nicht neu bauen.
1. Gibt es Module,
2. Hat ein Device mit dem Kernel nicht viel zu tun
-
Moderator
Robotik Einstein
Das Versteh ich jetzt nicht ganz, bzw. ich bin mir nicht sicher ob wir vom selben sprechen.
Wenn man irgend eine Hardware ansteuern möchte mit dem NGW100 dann braucht man dafür doch einen Treiber (Device Driver). Der liegt im Kernel Space und wird dort ausgeführt. Ich hatte nun das Problem wie übergeb ich dem Treiber einen Parameter aus dem Userspace.
Der Trick mit dem MMap ermöglicht es mir aber direkt vom User-Space auf die Ports zuzugreifen (damit geht dann ein Userprogramm). Das ist natürlich nicht zu empfehlen, da ich hier ohne Probleme den Kernel zerschiessen könnte, bei einem NGW100 aber egal, der ist schnell neu aufgesetzt (zumal ich mit NFS arbeite).
-
Erfahrener Benutzer
Roboter Genie
Nun, ich kenne die Details nicht mehr.
Es gibt einen Treiber, der ein Device füttert. Das Device ist aber was Eigenständiges, soweit ich das noch weiß. Wenn das Device Daten bekommt, sollte halt ein Treiber da sein, der die Daten entgegennimmt.
-
Moderator
Robotik Einstein
@thewulf00 schon richtig, aber mit mmap kann man diesen Teil umgehen und gleich loslegen ohne Treiber.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen