Protothreads : leichtgewichtiges Multitasking

pmac

Neues Mitglied
23. Sep. 2008
54
0
0
Sprachen
ich verwende seit kurzem die ProtoThreads von Adam Dunkles

http://www.sics.se/~adam/pt/

anstelle von Echtzeitkernen. Es bietet nahezu alle Vorteile von Echtzeitkernen mit der Ausnahme von preemtiven Taskwechseln.
Für mich ist das allerdings ein Vorteil, da durch diese "Einschränkung" das Verhalten bezüglich Taskwechsel und Timing absolut deterministisch und dazu noch leicht debugbar ist. Der Overhead je Thread beträgt nur 2 Byte RAM.
Einzige Voraussetzung für Protothreads ist die Verwendung eines ANSI C - kompatiblen Compilers (also super für GCC).
:)

Peter
 
Protothreads Beispiel für AVR Controller

Hallo zusammen,
bin auch ganz begeistert von "Protothreads". Danke für den Link.

Das tolle daran ist, daß man die SW auch unter Windows oder Linux laufen lassen und testen kann (natürlich ohne die AVR HW spezifischen Sachen)

Ich habe mit Protothreads ein bisschen rumgespielt, vielleicht kann jemand mein "Test-Projekt" als Einstieg gebrauchen.

Die Timer Library aus dem Original Beispiel habe ich für den AtMega16/128 angepasst und in demTest-Projekt zusammen gefasst und angehängt.

Es laufen 2 Threads.
Einer schaltet eine LED für eine bestimmte Zeit an,
der andere Thread schaltet die LED für eine bestimmte Zeit aus!

Das Programm lässt sich compilieren und ausführen für
-> AVR AtMega16/128: avr-gcc (makefile im Project Ordner)
-> x86: unter Windows mit Visual C (siehe Visual Studio Project)
-> x86: gcc unter Windows Cygwin (makefile im Linux Ordner, Aufruf über ml.bat
-> x86: gcc unter Linux (makefile im Linux Ordner, Aufruf über ml.bat

Die Simulation im AVR Studio funktioniert auch gut (evtl. Timerwerte anpassen).

Ich habe kein passendes Unterforum gefunden, deshalb hab ich ertsmal hier rein gepostet. Vielleicht würde das in ein neues Unterforum AVR-PRAXiS-Forum > AVR-Mikrocontrollerfamilie > Software > Betriebssysteme besser passen.
 

Anhänge

  • protothreads_avr_demo.zip
    39,5 KB · Aufrufe: 46

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)