mikrocontroller.net

Forum: Compiler & IDEs "Multitasking" innerhalb einer Anwendung?


Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie macht man folgendes: Auf einem embedded Linux läuft meine 
Applikation, die Daten graphisch auf einem LCD darstellt. Der Benutzer 
kann jetzt über Drehencoder den Zoom ändern oder große Datenmengen im 
Display hin- und herschieben. Jetzt können ja die Drehencoder sehr 
schnell Impulse generieren, schneller als die Zeichenroutine fertig ist. 
Das begrenzt für den Nutzer ziemlich nervig die maximale 
Geschwindigkeit, mit der er sich durch die Daten bewegt.

Ich hätte jetzt gerne eine Möglichkeit, die Zeichenroutine stumpf 
abzubrechen, wenn der Benutzer den nächsten Drehencoder-Impuls ausgelöst 
hat, ohne daß das Bild fertig aufgebaut ist. So wäre die 
Geschwindigkeit, mit der man sich durch die Daten bewegt, nicht 
begrenzt. Dreht man langsamer, wird das Bild sofort aufgebaut.

Gibt es sowas wie "Multitastink" innerhalb eines Programms?

Ach ja, ich nutze

Linux-2.6.24
directfb-1.0.1

und eine GNU Toolchain.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja nennt sich Threads, aber dann sollte man genau wissen was man macht, 
damit sich beide Threads nicht in die quere kommen.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, interessant, das Stichwort kommt mir bekannt vor.

Können Threads auch miteinander kommunizieren?

Da fällt mir noch eine andere Frage ein: Oft sind ja viele GUIs in 
GNU/Linux-Systemen nichts als Frontends für die darunterliegenden 
Unix-Tools. Wie bekommt man das eigentlich hin, daß diese Anwendungen 
einen Fortschrittsbalken anzeigen, während im Hintergrund ja ein 
einfaches Kommandozeilentool arbeitet? Die müssen ja auch irgendwie 
kommunizieren können.

Gruß
der Gerhard

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Können Threads auch miteinander kommunizieren?
die Threads sind ja keien eigene Prozesse, das ist alles innerhalb eines 
Prozesses - alle Thread können auf dem gesamten Speicher der Anwendung 
lesen und Schreiben - also auch auf Variablen gemeinsam zugreifen. 
(Genau dann hat man das Problem das man es nicht gleichzeitig lesen und 
schreiben sollte).
Aber man kann auch Klassisch mit IPC arbeiten.

Keine Ahnung wie das mit den Fortschritsbalken und kommandozeilen 
Programm gemacht wird.
Ich könnte mir vorstellen das die GIU nicht die Ausführbare Datei 
sondern die Libs nutzt und dort können auch Funktionen enthalten sein um 
soetwas zu bewerkstelligen.

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.