In Anbetracht der meist nicht üppigen Ressourcen von Mikrocontrollern, will der Einsatz eines Betriebssystems gut überlegt sein. FreeRTOS ist ein Open-Source-Echtzeitbetriebssystem, das aus einem sehr schlanken Kernel und einer Reihe von Bibliotheken besteht. Damit lassen sich sowohl Stand-alone-Lösungen, als auch Cloud-fähige IoT-Geräte realisieren.
In modernen Embedded-Systemen kommt man aufgrund moderner Voraussetzungen wie z.B. Cloud-Konnektivität oft um den Einsatz eines Betriebssystems nicht herum – trotz eng begrenzter Ressourcen. Wie gut eignet sich unter solchen Bedingungen das Open-Source-Echtzeitbetriebssystem FreeRTOS für den Einsatz in eingebetteten Stand-Alone- oder cloudfähigen IoT-Systemen?
(Bild: TQ Systems)
Zahlreiche Embedded-Lösungen – speziell Mikrocontroller basierte – haben nur eine spezifische Aufgabe zu bewältigen. Daher setzten viele Entwickler lange Zeit auf monolithische Lösungen, bei denen die Applikationssoftware und die Firmware eine Einheit bildeten und auch meist aus einer (Entwickler-)Hand kamen. Damit wird oftmals das maximal mögliche aus den Ressourcen beschränkten Mikrocontrollersystemen herausgeholt.
Allerdings hat sich das Umfeld für Embedded Systeme im Laufe der Zeit geändert und es wurden Anforderungen an die Entwickler herangetragen, die diesen „Bare Metal“-Ansatz an die Grenzen brachten: Ob es nun erhöhter Zeitdruck war und damit die Softwareentwicklung im Team notwendig wurde oder technische Wünsche der Kunden den Aufwand vergrößerten - um den Einsatz von Betriebssystemen kommt man kaum noch herum. Entsprechend hat der Markt reagiert und eine Vielzahl von Embedded-Betriebssystemen entwickelt: Von einfachen Prozess-Schedulern bis hin zu umfangreichen Echtzeitbetriebssystemen inklusiver Server-Funktionalität reicht mittlerweile die Spanne.
Bildergalerie
Von einer schnellen und prädiktiven Reaktion (harte Echtzeit) bis hin zu Server- und Cloud-Lösungen lassen sich damit alle Anwendungsanforderungen realisieren – aber eben nicht mit allen Betriebssystemen: Entweder ist der Funktionsumfang nicht passend oder der Ressourcenbedarf (Hardware, Entwicklungsaufwand und Kosten) ist zu hoch. Die Suche nach dem besten Betriebssystem für eine spezifische Anwendung hat sich so zur Quadratur des Kreises entwickelt: es gibt nur Näherungen, aber keine perfekte Lösung.
Bare-Metal-Programmierer, die bislang den Einsatz von Echtzeitbetriebssystemen scheuten, sollten sich mal FreeRTOS anschauen – es kommt ihrem Stil entgegen.
Andreas Willig, Produktmanager TQ-Embedded
Das schlank gehaltene FreeRTOS ist ein interessanter und leistungsfähiger Open-Source-Kandidat, wenn weniger mehr sein soll: Die Mikrokernelarchitektur schont die Ressourcen und lässt sich einfacher an verschiedene Mikrocontroller-Familien anpassen – aktuell gibt es Portierungen für über 40 Plattformen, unter anderem ARM, Intel und Renesas. Typischerweise ist der Kernel-Platzbedarf gerade einmal zwischen 6 KB und 12 KB groß. Der Kernel fokussiert sich dabei auf das Wesentliche, also Scheduling, Interprozess-Kommunikation und grundlegende Speicherverwaltung - alle weiteren Funktionen sind als hinzuladbare Bibliotheken realisiert. Das erleichtert nicht nur die Portierung auf eine neue Architektur, auch der Code-Review vereinfacht sich. So ist FreeRTOS beispielsweise nach dem Security Evaluation Standard for IoT Platforms (SESIP) Assurance Level 2 zertifiziert.
Mit dieser Zertifizierung haben die FreeRTOS 202012.00 LTS-Bibliotheken, einschließlich des FreeRTOS-Kernels und der zugehörigen IoT-Bibliotheken gezeigt, dass sie einen bestimmten Satz von Sicherheitskriterien für IoT-Plattformen erfüllen: Die Zertifizierung prüfte die Verifizierung der Plattform- und Instance-Identität, Firmware-Updates Over-the-Air (OTA), sichere Kommunikation, Software-Isolationsfähigkeiten und kryptografische Operationen. Darüber hinaus können Embedded-Entwickler, die FreeRTOS-basierte Anwendungen erstellen, die SESIP-Zertifizierung schneller für ihre eigenen Anwendungen erreichen, da die zugrunde liegenden Bibliotheken auf Konformität getestet wurden.
Mit seinen TQMa64xxL-, TQMa243xL- und TQMa117xL-Modul-Serien folgt TQ-Embedded dem „klein aber leistungsfähig“-Credo von FreeRTOS. Die kleinen Module (38 mm x 38 mm bzw. 31 mm x 31 mm) sind genügsam in der Leistungsaufnahme und damit auch in der Wärmeentwicklung, verfügen trotzdem über zahlreiche Schnittstellen. Die Mikrocontroller und die zugehörigen Module lassen sich den Aufgaben entsprechend konfigurieren und ähneln damit dem Konzept von FreeRTOS – nicht verwunderlich, dass TQ-Embedded diese Modulserien mit FreeRTOS ausliefert - im Fall der TQMa64xxL-Module zusätzlich noch mit Linux für die A53-Cores.
Gut für Headless-Anwendungen mit hartem Echtzeitbedarf
Auch wenn FreeRTOS für die drei neuen Modul-Serien erstmals als primäres Betriebssystem zum Einsatz kommt, so ist es bei TQ-Modulen der i.MX8-Serie nicht unbekannt: NXP bietet für die eigene Entwicklungssoftware MCUXpresso Software Development Kit (MCUXpresso SDK) ein vorintegriertes FreeRTOS an. Zusätzlich hat NXP mit RPMsg einen passenden Software-Layer zur Interprozessorkommunikation entwickelt (siehe Kasten), um das Echtzeitverhalten möglichst wenig zu beeinflussen. Ziel ist es, die vorhandenen Cortex-M-Cores möglichst effizient einzubinden. TQ-Embedded unterstützt dies mit den BSPs (Board Support Packages) für die i.MX8-Module.
TQ-Embedded baut mit den drei neuen Modulserien für seine Kunden eine Brücke von den traditionellen Mikrocontroller-Designs, die an ihre Grenzen gestoßen sind, hin zu neuen, leistungsfähigeren Mikrocontrollern bzw. Prozessoren. Dies entlastet die Entwickler in ihren Projekten, da sie bei einem Umstieg auf eine neue Prozessorarchitektur nicht alle Eigenheiten für das Hardware-Design erlernen müssen. So bestehen beispielsweise auf Energieeffizienz getrimmte Prozessoren aus unterschiedlichen Cores, die für gewisse Aufgaben optimiert sind und bei Nichtbedarf in Winterschlaf geschickt werden. Das bringt deutliche Energieersparnisse, der Schaltungsaufwand für die CPU-Versorgung erhöht sich allerdings. Auch verlangen die immer höher getakteten Speicher nach HF-Design-Expertise. Es spricht also viel dafür, diesen Entwicklungsaufwand TQ-Embedded zu überlassen und die einsatzbereiten Embedded-Module zu nutzen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Ziel beim Wechsel der Architektur sollte es sein, den Aufwand zu reduzieren, auch im Softwarebereich. (Echtzeit-)Betriebssysteme wie FreeRTOS helfen dabei merklich, da man sich der neuen Architektur auf einer höheren Abstraktionsebene nähert und so weniger Detailkenntnisse z.B. für die Initialisierung der Bausteine, notwendig sind. Damit lassen sich auch leichter neue Programmierer an die Embedded-Welt heranführen bzw. es ist einfacher, mit mehreren Software-Entwicklern an einem Projekt zu arbeiten.
Breite Konfigurierbarkeit sorgt für hohe Flexibilität
Der FreeRTOS-Scheduler ist konfigurierbar für einen präemptiven oder kooperativen Multitasking-Betrieb. Er ist auch geeignet für eine symmetrische Multicore-Konfiguration (SMP) und erschließt so ohne großen Aufwand das Potenzial vieler moderner Multi-Core-Prozessoren: Mit einer Instanz von FreeRTOS lassen sich die Aufgaben auf die mehreren Kerne verteilen. Ein aktueller Trend der Prozessorhersteller ist es jedoch unterschiedliche Core-Versionen auf einem Baustein zu vereinigen, also eine asymmetrische Multicore-Konfiguration (AMP) anzubieten. Auch hier kann FreeRTOS weiterhelfen, allerdings mit einer eigenen Betriebssysteminstanz für jeden Core, was sich aufgrund der geringen Kernel-Größe gut verschmerzen lässt.
Um den Stromverbrauch zu reduzieren ist je nach Mikrocontroller auch ein Tickless-Modus realisiert. Durch das Anhalten des Tick-Interrupts kann der Mikrocontroller in einem tiefen Stromsparzustand verbleiben, bis entweder ein Interrupt auftritt oder es für den RTOS-Kernel an der Zeit ist, eine Task in den Bereitschaftszustand zu versetzen. Damit lassen sich Applikationen leichter realisieren, die auf eine lange Batterielaufzeit angewiesen sind.
Für die Interprozesskommunikation sind neben den üblichen zwischengeschalteten Objekten wie Queues, Event Groups und Semaphoren auch direkte Task Notifications konfigurierbar. Damit kann der Anwender die für seine Applikation beste Kommunikationsstrategie wählen. Auch die Speicherverwaltung von FreeRTOS ist flexibel, so lassen sich Kernel-Objekte entweder vom Compiler statisch allokieren oder dynamisch zur Laufzeit. Für letzteres gibt es fünf unterschiedliche Schemata, um den jeweiligen Anforderungen der Anwendungen und den Fähigkeiten der Mikrocontroller gerecht zu werden.
Für höhere Betriebssystemfunktionen stehen vier Bibliotheken zur Verfügung:
FreeRTOS Plus,
FreeRTOS Core,
FreeRTOS for AWS IoT, und
FreeRTOS Labs.
FreeRTOS Plus gliedert sich in Unterpakete auf. Dazu zählen der Socket basierte TCP/IP-Stack, der Command Line Interpreter und POSIX-artige Peripherietreibererweiterungen. Hinzu kommen noch Logging-Funktionen und Rückfall-Algorithmen. Letztere dienen zur Entlastung des Datenverkehrs in Netzwerken.
Die FreeRTOS Core Bibliotheken implementieren auf offenen Standards basierende Konnektivität, Sicherheit und verwandte Funktionen. Diese Bibliotheken eignen sich für den Aufbau intelligenter Mikrocontroller-basierter Geräte, die mit der Cloud verbunden sind. So stehen MQTT-Client- und –Agent-Funktionen zur Verfügung ebenso wie ein HTTP-Client, SNTP (Simple Network Time Protocol) Funktionen, ein an JSON angelehnter Parser, PKCS #11 Schlüsselverwaltung, LTE CAT M-1 Interface und das Netzwerktransport-Interface.
Viele Vorteile für (I)IoT-Anwendungen
Die Verantwortung und Koordination der Weiterentwicklung von FreeRTOS liegt seit 2017 bei Amazon Web Services (AWS). Dies schlägt sich in der beeindruckenden FreeRTOS for AWS IoT Bibliothek nieder. Sie implementiert Clients für Mikrocontroller-basierte IoT-Geräte, die sich mit den AWS spezifischen Cloud-Mehrwertdiensten verbinden. Damit erschließen sich Funktionalitäten die absolut auf der Höhe der Zeit sind, ohne dafür ein großes und Ressourcen fressendes Betriebssystem betreiben zu müssen. Allen voran Over-the-Air (OTA) Updates, um im Feld befindliche Geräte sicher zu aktualisieren. Hinzu kommen Verwaltungsfunktionen wie die Bereitstellung neuer IoT-Geräte, Security Monitoring, Signature-Mechanismen, „Job“-Verwaltung und die virtuelle Repräsentation der Geräte in der Cloud („digitaler Zwilling“).
FreeRTOS Labs Projekte sind funktionsfähig, aber entweder unvollständig, experimentell oder einfach für die Open-Source-Gemeinschaft gedacht. Dazu zählen ein LoRaWAN-Stack für das bekannte Low-Power-Funknetz, POSIX Threading Wrapper, FAT12/FAT16/FAT32-Dateisystem, IPv6-Funktionalität und Erweiterungen für die parallele Nutzung mehrerer TCP/IP-Netze. Hinzu kommt noch MCUBoot, ein konfigurierbarer, sicherer Bootloader, der von mehreren Branchenführern gepflegt wird und die kryptografische Überprüfung von Software-Images unterstützt.
Beim Aufbau der Bibliotheken wird darauf geachtet, möglichst wenige Abhängigkeiten von anderen Bibliotheken zu erzeugen. FreeRTOS core und FreeRTOS for AWS IoT haben sogar keine anderen Abhängigkeiten als die zur Standard-C-Bibliothek - sie sind auch nicht einmal von einem RTOS abhängig. Damit wird ein Problem vermieden, das aktuell in der Linux-Gemeinde heiß diskutiert wird: die über 30 Jahre gewachsene „Dependency Hell“ der über 10.000 main.h Header, deren Auflösung für über 80 Prozent der Compilerungszeit verantwortlich sein soll. In Summe kommt der Linux-Kernel auf rund 53.000 Quellcodedateien. Im Gegensatz dazu hat FreeRTOS vier (!) Dateien - drei die sich alle Portierungen teilen und eine Mikrocontroller-spezifische. Zudem entsprechen die drei FreeRTOS-Kernquelldateien, die allen Ports gemeinsam sind, den Richtlinien der MISRA-Codierungsstandards. Um auch mit älteren C-Compilern zu funktionieren, hat man sich auf den C99-Standard als „Obergrenze“ festgelegt – einige Bibliotheken kommen sogar mit dem elementaren C90 aus.
Durch die Konfigurierbarkeit von FreeRTOS lässt es sich für spezifische Anwendungsfälle optimieren, unter anderem für:
Steuerungsaufgaben mit harten Echtzeitanforderungen,
(I)IoT-Anwendungen mit Cloud-Anbindung,
Low-Power-Applikationen mit langen Batterielaufzeiten, und
Safety-kritsche Aufgaben mit hoher Zuverlässigkeit.
Der Source Code von FreeRTOS steht per GitHub zur Verfügung und unterliegt der „MIT“-Lizenzbedingung: Sie ist kompatibel mit vielen Copyleft-Lizenzen, erlaubt aber auch die Wiederverwendung innerhalb proprietärer Software, vorausgesetzt, dass alle Kopien der Software oder ihrer wesentlichen Teile eine Kopie der Bedingungen der MIT-Lizenz sowie einen Copyright-Vermerk enthalten. Damit ist FreeRTOS auch für nichtfreie Projekte geeignet.
FreeRTOS nutzt zwei Repositorys: eines für einzelne Bibliotheken und eines für Pakete. Jedes einzelne Bibliotheks-Repository enthält den Quellcode für eine Bibliothek ohne Build-Projekte oder Beispiele. Paket-Repository enthalten mehrere Bibliotheken und können vorkonfigurierte Projekte enthalten, die die Verwendung der Bibliothek demonstrieren. Package Repositorys enthalten zwar mehrere Bibliotheken, aber keine Kopien dieser Bibliotheken. Stattdessen verweisen Paket-Repositorys auf die Bibliotheken, die sie als Git-Submodule enthalten. Durch die Verwendung von Submodulen wird sichergestellt, dass es für jede einzelne Bibliothek eine einzige Quelle gibt.
Die Git-Repositorys für die einzelnen Bibliotheken sind auf zwei GitHub-Organisationen aufgeteilt: Repositorys, die FreeRTOS-spezifische Bibliotheken (z.B. FreeRTOS+TCP) oder generische Bibliotheken (z.B. coreMQTT, das Cloud-unabhängig ist und mit jedem MQTT-Broker funktioniert) enthalten, befinden sich in der FreeRTOS-GitHub-Organisation. Repositorys mit AWS IoT-spezifischen Bibliotheken (wie der AWS IoT-Over-the-Air-Update-Client) befinden sich in der AWS GitHub-Organisation.
Bildergalerie
Jedes Open-Source-Projekt lebt von seiner Community - mit AWS steht schon mal ein anerkanntes Schwergewicht als Maintainer bereit. Hinzu kommen die Halbleiterhersteller Cypress, CEVA, Espressif, Infineon, Mediatek, Microchip, Nuvoton, NXP, Qualcomm, Realtek, Renesas, SiFive, Silicon Lab, STMicroelectronics, Texas Instruments und Xilinx. Zu den Entwicklungs-Tool-Herstellern in der FreeRTOS-Community zählen Code Confidence, IAR, Percepio und Segger. Abgerundet wird das Spektrum durch Anbieter von Trainings-, Consulting- und Software-Services.
Fazit: Mit FreeRTOS behält der Entwickler den Source-Code unter seiner Kontrolle
Auch Free RTOS ist, wie die meisten Echtzeitbetriebssysteme, für zeitkritische und/oder Embedded-Anwendungen ausgelegt – wer eine große Auswahl an (zukaufbarer) Standard-Softwarepakete oder exotische Programmiersprachen will, ist hier falsch. Der „Minimalismus“ von FreeRTOS ist die Antwort auf viele Bedenken traditioneller Mikrocontroller-Programmierer, die sich nicht dem undurchschaubaren Datei-Wust anderer offener Betriebssystem-Distributionen ausliefern wollen – sie behalten weiterhin den Überblick und die Kontrolle über ihre Software. Gleichzeitig gewinnen sie aber auch den einfachen und stressfreien Zugang zu diversen Funktionalitäten (z.B. Cloud), die bislang mit Mikrocontrollern kaum erreichbar schienen oder sehr viel Entwicklungszeit in Anspruch nahmen. In Kombination mit einem vorintegrierten Prozessormodul lässt sich den Projekt-Deadlines so elegant ein Schnippchen schlagen.
* * Manne Kreuzer ... ist Technischer Redakteur bei der TQ-Group.