Forum: Mikrocontroller und Digitale Elektronik Guide/Vergleich/Hinweise zu MP-Betriebssystemen gesucht


von J. W. (jwka)


Lesenswert?

Hallo,

ich hoffe, dass ich jetzt nicht in eine riesen Menge von Ohrfeigen 
laufe, weil man das auch mit der Suche finden könnte ... ich habe 
gesucht.

Ich habe erste Schritte mit dem AVR NetIO gemacht und auch ein paar 
Code-Zeilen angepasst, ja, sogar ein paar selbst geschrieben.

Diese Dinger nutze ich für Aufgaben wie die Überwachung von Tastern oder 
auch Durchflüssen und S0-Zählern sowie als IP-Relais.

Die Programmiererei erinnert mich sehr an meine ersten Gehversuche auf 
dem 6502. Und irgendwie erscheint es mir doch ein- oder zwei Stufen "zu 
weit unten".

Deshalb würde ich gerne mal ausloten, was denn eigentlich mit 
Betriebssystemen wie einem Unix auf diesen Teilen auszurichten ist und 
ob es nicht Sinn macht, eher dort auf einem dann vielleicht höheren 
Abstraktions-Level und unter Nutzung von Bibliotheken (z.B. für die 
Kommunikation) zu arbeiten.

Kann mir da vielleicht jemand helfen, wie ich an Übersicht-Informationen 
oder Zusammenfassungen komme? Denn jedes der möglichen OS auszuprobieren 
würde natürlich Tage und Wochen dauern um dann nach viel Arbeit 
festzustellen zu müssen: "das geht so nicht".

Vielen Dank im Voraus für Eure Tips.

von Rainer U. (r-u)


Lesenswert?

Nee, da passt kein Unix drauf. Die Boards sind eher für Leute, die Lust 
haben, sich einzuarbeiten. Oder man verwendet sie so, wie sie sind, mit 
mitgelieferter Software / Firmware.

Wie waren denn die beiden Zeilen, die Du eingefügt hast, und wo?

von Dominik S. (dasd)


Lesenswert?

Rainer Unsinn schrieb:
> Nee, da passt kein Unix drauf.

Sag' doch sooowas nicht :D
http://hackaday.com/2012/03/28/building-the-worst-linux-pc-ever/

Ne, im Ernst...

Was erwartest du von einem Betriebssystem auf so einem kleinen 
Prozessor?
Geht es dir tatsächlich um Scheduling, Tasks und Quasi-Parallelität?
Oder geht es dir nur um ein höheres Abrstraktionslevel?

Zu ersterem fällt mir für die AVRs jetzt nur 
http://de.wikipedia.org/wiki/FreeRTOS ein. Habe es aber noch nie 
benutzt, weiß nicht wie es läuft und zweifle auch an, dass es viel Sinn 
macht.

Höhere Abstraktionsebenen kann man auch ohne fertiges OS und dessen 
Overhead erreichen.
Man muss sich eben entsprechende Bibliotheken schaffen oder suchen.

Ist wie gesagt eine Frage dessen was du denn eigentlich willst / 
erwartest.

von Route_66 H. (route_66)


Lesenswert?

Hallo!
Betriebssystem, Programiersprache und Interpreter bei relativ schnellem 
Programmlauf und Programmentwicklung ist "FORTH".
Es erfordert allerdings ein gewisses "Umdenken" in UPN (umgekehrt 
polnische Notation).

von Osche R. (Gast)


Lesenswert?

J. Wege schrieb:

> Deshalb würde ich gerne mal ausloten, was denn eigentlich mit
> Betriebssystemen wie einem Unix auf diesen Teilen auszurichten ist

Unix ist die falsche Liga, aber es gibt durchaus 
Echtzeit-Betriebssysteme für 8 bit-Controller. Im Automobilbereich 
gängig ist z.B. OSEK von der Fa Vector Informatik.

Üblicherweise hast Du einen Scheduler (der in bestimmtem Zeitraster 
Funktionen "Tasks" aufruft und auch entsprechend reagiert wenn die zu 
lange brauchen), ein Message-System (über das die Tasks kommunizieren), 
diverse HW-Abstraktionsblöcke (damit der high-level code ein bisschen 
mehr plattform-unabhängig wird) und eine Ressourcenverwaltung für 
Speicher und Schnittstellen.

von J. W. (jwka)


Lesenswert?

Danke erstmal für Eure Antworten.

Vielleicht war ja "Unix" tatsächlich ein bischen zu hoch gegriffen. War 
eher so ein Arbeitstitel für "freies OS". FreeRTOS und OpenMCP gehen in 
die Richtung, an die ich gedacht habe. Und auch das Raspberry PI Projekt 
benutzt ja sowas wir ein OS. Dann gibts noch Carambola, Contiki und ...

Was meine Beweggründe sind?

Zunächst denke ich, dass es ein paar Standardaufgaben gibt, wie z.B. die 
"Multi-Kommunikation" via IP, die nicht neu entwickelt werden müssen und 
in einer Art "Betriebsystem" schon drin sein werden.

Z.B. mehrere Protokolle parallel benutzen (UDP für Statusmeldungen, TCP 
für Befehle), ein Paket an mehrere Teilnehmer im Netz (per TCP und/oder 
UDP) versenden, Authentifizierung für Befehle, ein File-System haben, um 
z.B, mit SD Karten zu hantieren.

Oder auch das Umsetzen von Schnittstelle a auf B (z.B. RS232 --> IP) 
ohne dass man sich um timingprobleme etc. kümmern muss.

Viele der Aufgaben, für die ich die MP einsetzen will sind wohl trivial. 
So eine Art "verlängerte Werkbank" eines Master. Insofern sollten viele 
meiner Wünsche nicht sonderlich exotisch sein, aber in den mir bekannten 
Projekten (Radig, Ethersex, RoBue) eben immer nur teilweise 
implementiert.

Die MP geben im wesentlichen die an den Ports ausgelesenen Stati weiter 
und führen (simple) Schaltbefehle aus. Schlimmstenfalls wird ein Eingang 
(zusätzlich zur Meldung an den "Master") direkt am Ausgang wieder 
ausgeführt.

Das höchste ist das routing von Paketen, wie beschrieben die RS232 --> 
IP oder auch IP --> Filter --> IP (Port-Weiterleitung/re-routing).

Bei vielen dieser Arbeiten sollen Teile der Logik via "akquirierte 
Daten" funktioneier, z.B. Routing Tables.

So möchte ich eben auch dass der MP leichter - ohne jedesmal zu 
reflashen - IP Adresse, Ports, Gateway etc. änden kann (nicht via DHCP).

Ferner sollen mehrere "Kommunikationspartner", also IP-Listen, dynamisch 
zur Laufzeit aufgenommen und fortan bedient werden können. Wenn sie 
nicht verfügbar sind, für eine Zeit ignoriert und danach wieder 
"gechallenged" werden etc.

Ich sage nicht, dass das alles nicht auch selbst programmierbar wäre 
oder (z.B. SD Karte) in Versionen z.B. von Ulrich Radig nicht schon drin 
wären. Trotzdem glaube ich halt, dass diese Art der Basisarbeit bestimmt 
schon gemacht wurde, ich aber schlicht die richtige Variante noch nicht 
gefunden habe.

Daher siche ich nach sowas wie einem Vergleich der "FreeRTOsse" dieser 
Welt.

Es gibt ja ein paar, aber wie gesagt, würde ich statt mich "blind" auf 
eines zu stürzrn und ggf. das falsche zu wählen, erst mal ein Überblick 
bekommen.

Daher die Frage, ob es sowas wie einen Vergleich schon gibt. Wenn nicht, 
muss ich mich eben durchfressen. Aber, wie sagte Pipi schon:

Wie, weshalb, warum? Wer nicht fragt bleibt dumm.

[EDIT]
Auch die mögliche "Portierbarkeit" von z.B. einem AVR auf einen NXP 
dürfte, wenn man sich "unter" ein OS schnallt eher und einfacher gegeben 
sein, als wenn man C-Code direkt verändert
[/EDIT]

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.