Hi, ich hab immer mehr davon gehört, dass es Betriebssysteme für µC gibt. Daraufhin habe ich mich einwenig in FemtoOs eingearbeitet. Allerdings fehlt mir immer noch eine Antwort auf die Sinnfrage. Wozu brauche ich auf einem Mikrocontroller eine Betriebssystem und wo steckt für mich der Mehrgewinn ? Frisst das Betriebssystem nicht automatisch den Gewinn durch performanceeinbußen und erhöhten Speicherbedarf wieder auf? Ich hoffe auf eine angeregte Diskussion Hans-Martin
@hakuspakus und in welchem Zusammenhang steht deine Äußerung mit Betriebssystem und uC? Sollte das jetzt eine "lustige" Antwort auf die Einleitung "ich hab immer mehr davon gehört" sein? Oder zweifelst du den Nutzen eines Betriebssystems für uC grundsätzlich an? Oder meinst du, daß alle die sich mit uC und Betriebssystemen bekloppt sind? Sabbeln nur deswegen, um Worte abzusondern, ist nicht immer sinnvoll.....
Ein µC-Betriebssystem ist dann sinnvoll, wenn man ein universell einsetzbares Gerät haben will, das man an verschiedenste Aufgaben durch kleine Programme anpassen kann, siehe z.B. Palm und andere Handhelds. Man braucht dann im Bedarfsfall nicht gleich die ganze Software neu schreiben, sondern bastelt nur ein kleines einfacheres Unterprogramm, dem dann die komplizierteren Funktionen (z.B. Grafikfunktionen auf einem Farb-Display, oder Ein-Ausgabe von Daten in einem Dateisystem) vom Betriebssystem zur Verfügung gestellt werden. Wenn bloss eine einzige einfache Anwendung, z.B Temperaturregelung, auf dem µC laufen soll, ist ein Betriebssystem natürlich Overkill.
Ein Betriebssystem ist auch dann Sinnvoll, wenn man Software von mehreren unterschiedlichen Herstellern einsetzen möchte. Beispiel: - Siemens Bedienpanel - WinCE auf einem Microcontroller (z.B. MIPS Chip) - VNC-Server kann darauf auch installiert/aktiviert werden - Softing OPC Server kann da auch drauf. - Datei-Explorer - USB-Stick - Fast so wie Windows, nur halt von allem etwas weniger. Wenn Du aber nur wegen dem Grafikdisplay und irgend welche Knöpfe auf dem Bildschirm / Touchscreen ein Betriebssystem haben willst, dann ist es eher zu überlegen ob man nicht lieber eine Library von z.B. Segger einbindet, die das kann. Schließlich hat ein Betriebssystem gleich mal ordentliche Anforderungen bzgl. RAM/Flash Bedarf. Diese speziellen Librarys kommen hingegen mit einigen wenigen KB..MB vollkommen klar. Ein Programm muss man sowiso selbst programmieren. Ob man selbst etwas mehr in die Grafik stecken muss oder ob man die Problemen bei der Betriebssystem-Anpassung meistern muss, ich glaube das schenkt sich nicht viel. Vor allem hat man, wenn man es selbst macht, alles selbst in der Hand. Beim Betriebssystem ist man immer abhängig vom System, das einem zu einer bestimmten Betriebsweise zwingt, wehe man möchte es gerne anders haben...
Ein kleines OS macht dann Sinn wenn der µC viele verschiedene Dinge tun soll. Hier gab es mal ein Projekt 'RGB Controller' mit einem ATMega128, da wurde das sehr schön demonstriert. Hört sich erstmal nach einer einfachen Aufgabe an, aber wenn das Ganze stetig erweitert wird kann auch ein 'Mini' Projekt schnell unübersichtlich werden und die Fehleranzahl und Fehlersuche wachsen dann überproportional schnell. In dem Controller war die RGB LED Ansteuerung als Kern, dazu LCD Ansteuerung, verschiedene Programme, Sensoren abfragen und in die Lichtsteuerung einbringen uvm. Mit einem Timer und zyklischer Abarbeitung kann man natürlich auch eine Menge erledigen, aber mit Interprozesskommunikation über globale Variablen fängt dann das Chaos an. Nur muss man für ein OS den µC meist eine Nummer grösser wählen um die 'verschwendeten' Resourcen auszugleichen, aber wenn es nicht um grosse Serien geht und z.B. Wartbarkeit des Codes wichtig ist lohnt sich das oft. Aber auf einem ATTiny würde ich das nicht machen...
so spontan würd ich sagen, der größte Vorteil steckt in der Nebenläufigkeit. Ein Betriebssystem kann die Ressourcen auf mehrere Prozesse verteilen, was viel Programmierarbeit sparen kann. Stell dir vor, du hast zwei Regelprozesse, die in Schleifen durchlaufen. Eine Schleife dauert 99msec, die andere 100msec. Das in ein Programm zusammenzufieseln macht keinen Spass. Durch die Nebenläufigkeit ergeben sich weitere Forderungen wie z.B. interprozesskommunikation, Treiber, Ressourcenverwaltung...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.