Ich habe bereits Bare-Metal-Software geschrieben und FreeRTOS auf eingebetteten Geräten verwendet. Aber ich würde gerne verstehen, warum sich manche Leute dafür entscheiden, eingebettetes Linux oder einen Kernel auf einem eingebetteten Gerät zu verwenden? In welchen Fällen wäre es z. B. unvermeidlich, dass Sie eingebettetes Linux oder einen Kernel auf einem eingebetteten Gerät verwenden müssen. Wie würde man zu dem Schluss kommen, dass er eines dieser beiden Dinge braucht?
Im Allgemeinen würden Sie kein Betriebssystem für etwas verwenden, das echte Mikrocontroller-Aufgaben ausführt. In solchen Fällen stört das Betriebssystem mehr als es hilft. Bei Betriebssystemen geht es darum, Hardwareressourcen zu virtualisieren und Abstraktionen wie Threads und Prozesse bereitzustellen. Diese Dinge sind von geringem Nutzen, wenn die Hardware, die Sie steuern, einfach direkt zu steuern ist, es keine Probleme mit der Portabilität gibt und Betriebssysteme ohnehin nicht für Sie virtualisieren. Allzweck-Betriebssysteme bewältigen auch Echtzeitanforderungen nicht gut oder überhaupt nicht, und das ist bei echten Controller-Anwendungen oft wichtig.
Der Grund, warum Sie manchmal Betriebssysteme auf High-End-Mikrocontrollern sehen, ist, dass diese Prozessoren wirklich als eingebettete Computer und nicht wirklich als Controller verwendet werden. Wenn Sie eine Verbindung zu einer Standardtastatur oder -maus herstellen, ein Standarddisplay steuern, eine Verbindung zu einem Netzwerk herstellen, ein USB-Host sein, Dateien in einer beliebigen Baumstruktur speichern oder andere Dinge tun möchten, bei denen Betriebssysteme helfen sollen, dann ein Betriebssystem kann hilfreich sein.
Linux auf Mikrocontrollern? Verwenden Sie nur Versionen ohne MMU (Memory Management Unit) - z. uC-Linux. Cortex-M (M - Mikrocontroller) hat MPU (Memory Protection Unit). Cortex-A (A - Anwendung) hat MMU. Normalerweise enthielten Mikroprozessoren keine gewöhnlichen Peripheriegeräte, die in üblichen Mikrocontrollern zu finden sind. Obwohl sehr schnell, führen Sie sowohl das Betriebssystem als auch die Benutzeranwendungen aus. Sie handhaben nicht sehr gut E/A-Pins und Protokolle, die eine geringe Latenz erfordern , sind aber ideal für die Handhabung von Bildern, Audio und die Übertragung von Megabytes an Daten mit hohem Durchsatz(USB, Ethernet usw.). Ein Raspberry-PI eignet sich gut zum Ansehen eines Films, aber er ist nicht geeignet, um beispielsweise die FOC-Steuerung eines Drehstrommotors zu implementieren. Aus ähnlichen Gründen wie den bereits diskutierten ist es nicht ungewöhnlich, Lösungen mit einem Board mit zwei Prozessoren zu finden: einem Cortex-A, auf dem Linux läuft, und einem Cortex-M, der für kritische Aufgaben zuständig ist (Beispiel UDOO-Board). Der BeagleBone ist etwas anders, wenn er in denselben Chip, dedizierte Steuerungs- und Timing-Peripheriegeräte integriert ist.
Eugen Sch.
schwach
Benutzer3528438
Toni M
schwach
Toni M
schwach