Forum: Mikrocontroller und Digitale Elektronik Ubuntu + FTDI(245BM) + Intel Atom Prozessor


von peterguy (Gast)


Lesenswert?

Hallo Leute,

ich habe mir einen GPS Empfänger gebaut, der im Moment über USB mit 
einem LabVIEW Programm konfiguriert und ausgelesen wird.
Als Kommunikationschip verwende ich den FTDI 245RL, den ich in LabVIEW 
über die D2xx DLL anspreche. Klappt soweit wunderbar.

Jetzt habe ich mir für die mobile Datenaufzeichnungen ein Netbook mit 
Intel Atom CPU und Ubuntu 8.04 bestellt. Von der Programmierung von 
Treibern & Applikationen unter Linux habe ich leider keinen Plan, würde 
mich aber in das Thema einfinden, um auch mal was neues zu machen.
Vorab habe ich erstmal ein paar Fragen um die Machbarkeit und den 
Aufwand abzuschätzen:

1.) Ist es möglich, die D2xx Treiber auf dem System zu installieren? Ich 
meine gehört zu haben, daß Treiber/Kernel Module immer auch vom 
OS-Derivat und von der CPU abhängig sind.

2.) Wie aufwändig schätzt Ihr die Entwicklung einer kleinen DLL (unter 
Linux shared library), die auf der einen Seite auf den FTDI Treiber 
zugreift und dem Anwender Funktionen wie "OpenGps(..), ConfigGps(..)" 
bereitstellt? Im Prinzip muss die Library nur Bytes über den FTDI 
Treiber hoch- und runterschaufeln.

3.) Ich würde die Library gerne mit einer kleinen 3-Tasten GUI/Anwendung 
bedienen. Welche IDE/Sprache bietet sich dafür an?

4.) Optimal wäre eine möglichst weit unten angesetzte Portabilität. D.h. 
die Library sollte als DLL f. Windows uind als Shared Library f.Linux 
kompilierbar sein. Ähnliches gilt für die Anwendung, auch sie sollte 
unter Windows & Linux laufen.

Bin gespannt auf eure Antworten!

Viele Grüße,
Peter

von Guido (Gast)


Lesenswert?

Hallo Peter,

die D2xxx-lib unter Ubuntu funktioniert. Ich habe sie mit der
zugehörigen Wrapper-Unit unter Lazarus für den MiniLA benutzt.
Der einzige Unterschied zur Windowsversion war soweit ich mich
erinnere der andere Lib-Name, der einfach geändert werden kann.

Wenn das mit Lazarus geht, sollte es mit C keine Probleme geben.

Gruß, Guido

von peterguy (Gast)


Lesenswert?

Hallo Guido,

funktioniert die Library auch mit INTEL Atom CPUs, oder bin ich da auf 
dem falschen Dampfer, was die Systemabhängigkeit von Linux shared 
libraries angeht?

Gruß,
Peter

von (prx) A. K. (prx)


Lesenswert?

Ein Atom ist ein normaler x86er, ein ganz normaler PC-Prozessor.

von faustian (Gast)


Lesenswert?

Ausserdem wird ein FT245 (sofern man nicht im EEPROM herumgewuetet hat) 
standardmaessig vom Kernel erkannt und ein ttyUSB* device angelegt. stty 
+raw -f /device und du kannst den FT245 mehr oder weniger ueber die 
shell ansprechen.

von peterguy (Gast)


Lesenswert?

Ok, Punkt 1.) ist also schon mal geklärt, sollte klappen.

Wie sieht das mit den Fragen 2.) und 3.) aus? Welche 
Entwicklungsumgebungen  Compiler  Sprachen würdet ihr mir empfehlen?

Aus dem Bauch heraus hätte ich jetzt Java für die Anwendung gesagt und 
die Shared Library in C geschrieben und mit GCC erzeugt.

von Gast (Gast)


Lesenswert?

Kommt drauf an was du genau machen willst. Viele Aufgaben lassen sich 
unter Linux bereits mit einem "einfachen" Bash-Skript lösen! 
Schnittstelle unter Linux ansprechen ist idr einfacher wie mit Windows. 
Du arbeitest im Prinzip nur mit einer Datei (in deinem Fall wie schon 
oben einer geschrieben hat irgendwas mit /dev/USBttyS0 )

Wenns komplizierter ist würde ich dir aufjedenfall raten mit C bzw C++ 
zu programmieren und die QT-libs zu verwenden dann kannst du dein 
Programm auch leicht auf andere Plattformen wie Windows oder MacOS 
portieren.

Entwicklungsumgebung kann ich dir jetz keine Spezielle nennen.

lg

von (prx) A. K. (prx)


Lesenswert?

Für eine "DLL" kommst du schlecht um C herum.

Aber wenn es um die erwähnte einfache 3-Tasten-Anwendung geht, dann tut 
es als "Entwicklungsumgebung" jeder Editor und raus kommt einfachstes 
Scripting mit TclTk (oder ebenso Tk via Python,Perl,PHP,,...). Stammt 
zwar noch aus der Broncezeit, aber dafür langt es und ist schön einfach.

von peterguy (Gast)


Lesenswert?

> Wenns komplizierter ist würde ich dir aufjedenfall raten mit C bzw C++
> zu programmieren und die QT-libs zu verwenden dann kannst du dein
> Programm auch leicht auf andere Plattformen wie Windows oder MacOS
> portieren.

Ok, QT wäre eine Lösung um Portierbarkeit zu gewährleisten.
Was wäre mit Java, könnte an das nicht auch einsetzten? Ein Freund hat 
mir Java wärmstens empfohlen.

> Für eine "DLL" kommst du schlecht um C herum.

Macht doch nix ;-) C ist kein Problem, habe bereits diverse kleinere 
DLLs geschrieben und mit MinGW kompiliert. Aber halt alles unter 
Windows.
Editor muss ich mal schaun, aber so wie ich die Linux-Welt einschätze 
gibts da nicht viel. Seitdem mir ein Kollege mal den "super" Editor VI 
vorgeführt hat und allen ernstes meinte dieser wäre besser als alles 
Vergleichbare bin ich da wenig optimistisch. :D

von (prx) A. K. (prx)


Lesenswert?

peterguy schrieb:

> Editor muss ich mal schaun, aber so wie ich die Linux-Welt einschätze
> gibts da nicht viel.

Ach nee. Gute Editoren und ggf. darauf aufbauende IDEs gibt es wie Sand 
am Meer. Code::Blocks, jEdit, ...

> Seitdem mir ein Kollege mal den "super" Editor VI
> vorgeführt hat und allen ernstes meinte dieser wäre besser als alles
> Vergleichbare bin ich da wenig optimistisch. :D

Glück gehabt. Ein anderer hätte dir Emacs empfohlen.

von (prx) A. K. (prx)


Lesenswert?

peterguy schrieb:

> Was wäre mit Java, könnte an das nicht auch einsetzten? Ein Freund hat
> mir Java wärmstens empfohlen.

Eine einfache GUI-Anwendung geht mit so ziemlich allem worin man 
programmieren kann, ausser mit der Shell selber. Such dir aus was dir 
besser passt.

von faustian (Gast)


Lesenswert?

"ausser mit der Shell selber."

naja, (g)dialog, oder einige der Sachen aus der plan9-Welt.....

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.