„Ein kostenloses Produkt zur Verfügung stellen, das die Qualität und den Service übertrifft, die von den Nutzern kommerzieller Alternativen verlangt werden“
Die engagierten FreeRTOS-Entwickler arbeiten seit mehr als 15 Jahren in enger Partnerschaft mit den weltweit führenden Chip-Herstellern zusammen, um Ihnen ein marktführendes, kommerzielles und völlig kostenloses, hochwertiges RTOS und Tools zur Verfügung zu stellen….aber was ist ein RTOS?
Diese Seite beginnt mit der Definition eines Betriebssystems, verfeinert diese dann, um ein Echtzeit-Betriebssystem (RTOS) zu definieren, und verfeinert diese dann noch einmal, um einen Echtzeit-Kernel (oder Echtzeit-Executive) zu definieren.
Siehe auch den FAQ-Punkt „Warum ein RTOS“ für Informationen darüber, wann und warum es sinnvoll sein kann, ein RTOS in Ihrem Softwareentwurf für eingebettete Systeme zu verwenden.
Was ist ein Allzweck-Betriebssystem?
Ein Betriebssystem ist ein Computerprogramm, das die Grundfunktionen eines Computers unterstützt und anderen Programmen (oder Anwendungen), die auf dem Computer laufen, Dienste zur Verfügung stellt.Die Anwendungen stellen die Funktionalität bereit, die der Benutzer des Computers wünscht oder benötigt. Wenn Sie diese Webseite lesen, verwenden Sie einen Webbrowser (das Anwendungsprogramm, das die Funktionen bereitstellt, an denen Sie interessiert sind), der seinerseits in einer Umgebung läuft, die von einem Betriebssystem bereitgestellt wird.
Was ist ein RTOS?
Die meisten Betriebssysteme scheinen die gleichzeitige Ausführung mehrerer Programme zu ermöglichen. Dies wird als Multitasking bezeichnet. Ein Teil des Betriebssystems, der so genannte Scheduler, ist für die Entscheidung zuständig, welches Programm wann ausgeführt werden soll, und vermittelt den Eindruck der gleichzeitigen Ausführung, indem er schnell zwischen den einzelnen Programmen umschaltet.
Der Typ eines Betriebssystems wird dadurch definiert, wie der Scheduler entscheidet, welches Programm wann ausgeführt werden soll. Der Scheduler eines Mehrbenutzer-Betriebssystems (wie Unix) stellt beispielsweise sicher, dass jeder Benutzer einen angemessenen Anteil an der Verarbeitungszeit erhält. Ein anderes Beispiel ist der Scheduler eines Desktop-Betriebssystems (z.B. Windows), der dafür sorgt, dass der Computer für seine Benutzer ansprechbar bleibt.
Der Scheduler in einem Echtzeitbetriebssystem (RTOS) ist so konzipiert, dass er ein vorhersehbares (normalerweise als deterministisch bezeichnetes) Ausführungsmuster bereitstellt, was besonders für eingebettete Systeme von Interesse ist, da diese häufig Echtzeitanforderungen haben. Eine Echtzeitanforderung ist eine Anforderung, die besagt, dass das eingebettete System auf ein bestimmtes Ereignis innerhalb einer genau definierten Zeit (der Deadline) reagieren muss.
Eine Garantie für die Einhaltung von Echtzeitanforderungen kann nur gegeben werden, wenn das Verhalten des Schedulers des Betriebssystems vorhergesagt werden kann (und daher deterministisch ist).
Traditionelle Echtzeit-Scheduler, wie der in FreeRTOS verwendete Scheduler, erreichen Determinismus, indem sie es dem Benutzer ermöglichen, jedem Thread der Ausführung eine Priorität zuzuweisen. Der Scheduler verwendet dann die Priorität, um zu wissen, welcher Ausführungsstrang als nächstes ausgeführt werden soll. In FreeRTOS wird ein Ausführungsstrang als Task bezeichnet.
Was ist FreeRTOS?
FreeRTOS ist eine Klasse von RTOS, das so konzipiert ist, dass es klein genug ist, um auf einem Mikrocontroller zu laufen – obwohl seine Verwendung nicht auf Mikrocontroller-Anwendungen beschränkt ist.
Ein Mikrocontroller ist ein kleiner und ressourcenbeschränkter Prozessor, der auf einem einzigen Chip den Prozessor selbst, einen Nur-Lese-Speicher (ROM oder Flash) zur Aufnahme des auszuführenden Programms und den für die auszuführenden Programme erforderlichen RAM-Speicher (Random Access Memory) enthält. Typischerweise wird das Programm direkt aus dem Festwertspeicher ausgeführt.
Mikrocontroller werden für eingebettete Anwendungen verwendet (Anwendungen, bei denen man die Prozessoren selbst oder die darauf ausgeführte Software nie sieht), die normalerweise eine sehr spezifische und spezielle Aufgabe zu erfüllen haben. Die Größenbeschränkungen und die spezielle Art der Endanwendung rechtfertigen selten die Verwendung einer vollständigen RTOS-Implementierung – oder machen die Verwendung einer vollständigen RTOS-Implementierung überhaupt erst möglich.FreeRTOS bietet daher nur die Kernfunktionalität des Echtzeit-Scheduling, die Kommunikation zwischen den Tasks sowie Timing- und Synchronisationsprimitive. Das bedeutet, dass es eher als Echtzeit-Kernel oder Echtzeit-Exekutive bezeichnet werden kann. Zusätzliche Funktionen, wie z. B. eine Befehlskonsolenschnittstelle oder Netzwerkstacks, können dann mit Zusatzkomponenten hinzugefügt werden.
Nächste: RTOS-Grundlagen