www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Applikation unter Linux und AP7000


Autor: abdo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich habe den ICnova_oem Board, und habe daran einen TFT, Motorsteuerung 
und ein paar Pneumatic Ventile angeschlossen.
Nun habe ich das Problem mit der Programmierung, wie soll eine 
Applikation aussehen, wenn ich alle den Display mit aktuellen Werte 
refreshen will, und mittel den Touch-interface (der auf dem Display 
sitzt) die Motorsteuerung ansteuere.
Eine Applikation unter Linux ist nichts anderes als ein oder mehrere 
Quellcodes, die einen main()-Funktion enthalten und mit einen Makefile 
zu einer ausführbaren Datei übersetzen lassen.
Frage: gibt es eine Möglichkeit oder einen Programmiertechnik, wie man 
mehrere Processe so gestallten kann, dass sie mit ein andere 
kommunizieren können? was ist mit threads? die fork()-Funktion vertehe 
ich nicht ganz wie man damit arbeiten kann? kann mir jmd helfen die 
richtige technik zu bekommen, einen guten Programm zu entwerfen?
Vielen Dank schonmal.
Abdo

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abdo schrieb:
> wie soll eine Applikation aussehen,
Naja, wie ein Programm, das genau das macht, was Du willst.
Wenn wir Dir schreiben, wie das aussieht, hast Du ja bereits dein 
Programm.
Wenn ich das machen soll, kostet das einiges (sicherlich auch bei den 
anderen).

> Eine Applikation unter Linux ist nichts anderes als ein oder mehrere
> Quellcodes, die einen main()-Funktion enthalten und mit einen Makefile
> zu einer ausführbaren Datei übersetzen lassen.

Das ist nicht nur unter Linux so, sondern auf jedem System, wenn man mit 
C/C++ programmiert.

> Frage: gibt es eine Möglichkeit oder einen Programmiertechnik, wie man
> mehrere Processe so gestallten kann, dass sie mit ein andere
> kommunizieren können?

1. Shared Memory
2. Named Pipes
3. Dateisystem
4. Netzwerk
5.

> was ist mit threads? die fork()-Funktion vertehe
> ich nicht ganz wie man damit arbeiten kann?
Benutze doch mal Google (oder eine andere, dir genehme Suchmaschine). 
Dazu gibt es massig Infos im Netz. Fast jedes Serverprogramm arbeitet 
damit.
Das ganze ist aber so umfangreich, dass es hier im Forum nicht erklärt 
werden kann.

> kann mir jmd helfen die
> richtige technik zu bekommen, einen guten Programm zu entwerfen?
Sicherlich jede Suchmaschine plus eine gehörige Portion Hirnschmalz.

Autor: Abdo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke  Christian H für die schnelle Antwort.
Ja, ich habe schon ein paar Applikationen auf die Beine gestellt, mittel 
Mailboxen, nur wie ist es am effektivsten, 2 Processe miteinander 
kommunizieren zu gestallten? ich habe auch Probleme mit der Seriellen 
Schnittstelle, wenn du Lust und Geduld hast, kann ich die den Code 
Posten. Ich kann auch verstehen dass du lieber Geld dafür nehmen willst, 
den Zeit kostet Geld.
Ich brauche nur Tipps, und damit hast du schon angefangen, besten dank.
Gruss Abdo

Autor: Anzahl Blaetter eines Purzelbaumes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist erstmal, weshalb man mehrere Prozesse nehmen will wenn's 
auch einer tut. Und dann noch einzelne applikationen, die man einzeln 
starten kann/muss. Was geschieht wenn die eine Applikation fehlt, und an 
der Mailbox nichts ist ? Eine Mailbox ist nicht beliebig tief. Auch wenn 
der urspruengliche zweck eine gebufferte Kommunikation ist, wird die 
Kommunikation blockierend wenn auf der anderen Seite nichts ist. Und 
dann stoppt der Prozess. Ist das erlaubt ? Eher nicht.
Also zurueck zu einer Einzelapplikation die aus mehreren Prozessen 
besteht, die alle zusammen gestartet werden.

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@abdo: Auch wenns böse klingt, aber du hast das da vor dir:

1) Lerne Linux
2) Lerne Programmieren
3) Löse dein Problem, so dass es funktioniert, für die Textkonsole.
4) Optimiere, aber erst wenn du einen funktionierenden Prototypen hast, 
wo wirklich ein Performanceproblem besteht.
5) Kümmere dich um eine GUI.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian H. schrieb:
> 1. Shared Memory
> 2. Named Pipes
> 3. Dateisystem
> 4. Netzwerk
> 5.

5. Unix-Domain-Sockets
6. pipe()
7. Globale Variablen mehrerer Threads (-> Mutex, Semaphoren!)

[1] W. Richard Stevens: Unix Network Programming
Vol. 1: Networking APIs: Sockets and XTI

[2] W. Richard Stevens: Unix Network Programming
Vol. 2: Interprocess Communications

[3] W. Richard Stevens: Advanced Programming in the Unix Environment

Autor: Abdo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank Leute,
ich benutze Mehrere Processe, weil ich einfach die Messmittel 
voneinander trennen will, die Motorsteuerung hat mit dem GUI nichts zu 
tun, ausser wenn ich beispielsweise die Position erfragen will, dann 
geschieht dies mittel MB, und die Variable wird zu einem UI-Task 
geschickt, der ständig variablen auf dem Display anzeigt.
Wie kann ich mehrere Processe von einem Process aus starten, und trozdem 
diese auseinander trennen kann?
Abdo

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.