{"id":2488,"date":"2026-06-27T20:42:53","date_gmt":"2026-06-27T20:42:53","guid":{"rendered":"https:\/\/www.pickplace.de\/?post_type=projekt&#038;p=2488"},"modified":"2026-06-27T20:42:59","modified_gmt":"2026-06-27T20:42:59","slug":"freertos-und-echtzeit-software","status":"publish","type":"projekt","link":"https:\/\/www.pickplace.de\/de\/projekte\/freertos-und-echtzeit-software\/","title":{"rendered":"FreeRTOS und Echtzeit-Software"},"content":{"rendered":"\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Inhalt<\/h2><nav><ul><li class=\"\"><a href=\"#das-wichtigste-in-kurze\">Das Wichtigste in K\u00fcrze<\/a><\/li><li class=\"\"><a href=\"#was-ist-free-rtos\">Was ist FreeRTOS?<\/a><\/li><li class=\"\"><a href=\"#wann-braucht-ein-mikrocontroller-ein-echtzeitbetriebssystem\">Wann braucht ein Mikrocontroller ein Echtzeitbetriebssystem?<\/a><\/li><li class=\"\"><a href=\"#warum-nicht-selbst-schreiben\">Warum nicht selbst schreiben?<\/a><\/li><li class=\"\"><a href=\"#typische-technische-fragestellungen-in-free-rtos-projekten\">Typische technische Fragestellungen in FreeRTOS-Projekten<\/a><\/li><li class=\"\"><a href=\"#typisch\">Typische Technologien und Stacks<\/a><\/li><li class=\"\"><a href=\"#unsere-leistungen\">Unsere Leistungen<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 id=\"das-wichtigste-in-kurze\" class=\"wp-block-heading\">Das Wichtigste in K\u00fcrze<\/h2>\n\n\n\n<div class=\"wp-block-stackable-icon-list stk-block-icon-list stk-block stk-1fc8204\" data-block-id=\"1fc8204\"><style>.stk-1fc8204 {--stk-icon-list-marker-color:var(--theme-palette-color-1, #EE4B6A) !important;}<\/style><svg style=\"display:none\"><defs><g id=\"stk-icon-list__icon-svg-def-1fc8204\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"\/><\/svg><\/g><\/defs><\/svg><ul class=\"stk-block-icon-list__ul stk-block-icon-list--column\">\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-2a76550\" data-block-id=\"2a76550\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-1fc8204\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">FreeRTOS ist ein Echtzeitbetriebssystem f\u00fcr Mikrocontroller und Embedded-Systeme und hilft dabei, mehrere Aufgaben geordnet und zeitlich kontrolliert auszuf\u00fchren. <\/span><\/div><\/li>\n\n\n\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-b10b7ce\" data-block-id=\"b10b7ce\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-1fc8204\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">FreeRTOS eignet sich f\u00fcr Sensorik, Steuerungen, Kommunikation, Messger\u00e4te und kleinere Embedded-Systeme, wenn Reaktionen zuverl\u00e4ssig innerhalb definierter Zeiten erfolgen m\u00fcssen. <\/span><\/div><\/li>\n\n\n\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-d95d4ce\" data-block-id=\"d95d4ce\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-1fc8204\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">FreeRTOS ist relevant f\u00fcr Industrieelektronik, Maschinen, Fahrzeuge, Marine-Ger\u00e4te und milit\u00e4rische Systeme; typische Themen sind Tasks, Interrupts, Timing, Kommunikation, Speicher und Stabilit\u00e4t.<\/span><\/div><\/li>\n<\/ul><\/div>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image stk-block stk-ccb36fe\" data-block-id=\"ccb36fe\"><style>.stk-ccb36fe .stk-img-wrapper{width:70% !important;}.stk-ccb36fe .stk-img-wrapper img{border-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;}<\/style><figure><span class=\"stk-img-wrapper stk-image--shape-stretch\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-1837\" src=\"https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600.jpg\" width=\"1600\" height=\"1067\" alt=\"Nahaufnahme einer Elektronikplatine mit Chips \u2014 FreeRTOS im Fokus\" srcset=\"https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600.jpg 1600w, https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600-300x200.jpg 300w, https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600-1024x683.jpg 1024w, https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600-768x512.jpg 768w, https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600-1536x1024.jpg 1536w, https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/04\/pcb-ecu-circuit-board-close-up-with-different-components-1600-18x12.jpg 18w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/span><\/figure><\/div>\n\n\n\n<h2 id=\"was-ist-free-rtos\" class=\"wp-block-heading\">Was ist FreeRTOS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FreeRTOS ist ein Echtzeitbetriebssystem f\u00fcr Mikrocontroller und Embedded-Systeme. Es stellt grundlegende Mechanismen bereit, um mehrere Software-Aufgaben auf einem Mikrocontroller zu organisieren. Dazu geh\u00f6ren Tasks, Scheduler, Queues, Semaphoren, Timer und Mechanismen zur Synchronisation zwischen Programmbestandteilen. Ein Mikrocontroller f\u00fchrt dabei weiterhin nur die Instruktionen aus, die seine Hardware erlaubt. FreeRTOS sorgt jedoch daf\u00fcr, dass diese Ausf\u00fchrung nicht als einzelner unstrukturierter Programmablauf organisiert werden muss, sondern in getrennte Aufgabenbereiche aufgeteilt werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In einem typischen Embedded-System entstehen schnell mehrere parallele Anforderungen. Ein Sensor muss in festen Abst\u00e4nden ausgelesen werden. Eine Kommunikation \u00fcber UART, SPI, I\u00b2C, CAN, Ethernet oder eine andere Schnittstelle muss Daten empfangen und senden. Eine Steuerlogik muss Zust\u00e4nde bewerten und Ausg\u00e4nge setzen. Eine Bedienoberfl\u00e4che oder Diagnosefunktion muss auf Benutzereingaben oder externe Anfragen reagieren. Ohne ein Betriebssystem werden solche Funktionen oft in einer Hauptschleife, Interrupt-Service-Routinen und Zustandsautomaten kombiniert. Das kann f\u00fcr kleine Programme ausreichen. Mit wachsender Funktionszahl wird jedoch schwerer nachvollziehbar, welche Aufgabe wann ausgef\u00fchrt wird und welche Funktion eine andere blockiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FreeRTOS schafft hierf\u00fcr eine technische Struktur. Jede Aufgabe kann als Task modelliert werden. Eine Task kann beispielsweise Messwerte erfassen, eine andere Task kann Kommunikationsdaten verarbeiten, eine weitere Task kann eine Regelung oder Steuerentscheidung ausf\u00fchren. Der Scheduler entscheidet anhand der Priorit\u00e4ten und Zust\u00e4nde der Tasks, welche Aufgabe gerade CPU-Zeit erh\u00e4lt. Dadurch wird die Software in Einheiten gegliedert, die fachlich und technisch besser voneinander getrennt werden k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Projekte bedeutet das nicht, dass FreeRTOS automatisch jedes Timing-Problem l\u00f6st. Die richtige Aufteilung in Tasks, die Wahl der Priorit\u00e4ten, der Umgang mit Interrupts und die Speicherplanung m\u00fcssen zum System passen. Eine falsch priorisierte Task kann zeitkritische Abl\u00e4ufe verz\u00f6gern. Eine blockierende Funktion kann andere Bestandteile an der Ausf\u00fchrung hindern. Eine unklare Daten\u00fcbergabe zwischen Tasks kann Fehler erzeugen, die nur unter bestimmten Lastsituationen auftreten. PICKPLACE betrachtet FreeRTOS deshalb nicht nur als Bibliothek, die eingebunden wird, sondern als Architekturentscheidung f\u00fcr das Embedded-System.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zur Arbeit mit FreeRTOS geh\u00f6rt auch die Abgrenzung zwischen Interrupt-Kontext und Task-Kontext. Interrupts werden h\u00e4ufig genutzt, um schnell auf Hardware-Ereignisse zu reagieren, etwa auf einen empfangenen Datenblock, einen Timer-Ablauf oder einen externen Eingang. Die eigentliche Verarbeitung sollte jedoch oft in Tasks verschoben werden, damit Interrupts kurz bleiben und das Systemverhalten nachvollziehbar bleibt. FreeRTOS stellt daf\u00fcr Mechanismen bereit, mit denen Interrupts Tasks benachrichtigen oder Daten an Queues \u00fcbergeben k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Speicher spielt eine zentrale Rolle. Mikrocontroller verf\u00fcgen h\u00e4ufig \u00fcber begrenzten RAM und Flash-Speicher. Jede Task ben\u00f6tigt Stack-Speicher. Queues, Puffer und andere Datenstrukturen ben\u00f6tigen ebenfalls Speicher. In FreeRTOS-Projekten muss daher gekl\u00e4rt werden, welche Tasks wirklich notwendig sind, welche Stack-Gr\u00f6\u00dfen angesetzt werden und wie mit dynamischer oder statischer Speichervergabe umgegangen wird. Diese Fragen sind nicht nur Implementierungsdetails, sondern beeinflussen die Fehlersuche und die Wartbarkeit der Software.<\/p>\n\n\n\n<h2 id=\"wann-braucht-ein-mikrocontroller-ein-echtzeitbetriebssystem\" class=\"wp-block-heading\">Wann braucht ein Mikrocontroller ein Echtzeitbetriebssystem?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Mikrocontroller braucht ein Echtzeitbetriebssystem wie FreeRTOS nicht in jedem Projekt. Wenn ein Ger\u00e4t nur eine einfache Funktion ausf\u00fchrt, wenige Eing\u00e4nge abfragt und keine zeitkritische Kommunikation verarbeitet, kann eine Hauptschleife mit klaren Zustandsautomaten ausreichend sein. Ein Echtzeitbetriebssystem wird dann relevant, wenn mehrere Aufgaben mit unterschiedlichen zeitlichen Anforderungen koordiniert werden m\u00fcssen und die Software ohne klare Trennung un\u00fcbersichtlich oder fehleranf\u00e4llig wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typische F\u00e4lle sind Systeme mit Sensorik, Steuerungen, Kommunikation und Messfunktionen. Ein Messger\u00e4t kann beispielsweise regelm\u00e4\u00dfig Daten erfassen, gleichzeitig eine Anzeige aktualisieren und externe Kommunikationsanfragen beantworten. Eine Steuerung kann Eing\u00e4nge \u00fcberwachen, Aktoren ansteuern und Diagnosedaten bereitstellen. In solchen Systemen reicht es oft nicht, Aufgaben nacheinander in einer Schleife abzuarbeiten, wenn einzelne Funktionen l\u00e4nger dauern oder auf externe Ereignisse warten. FreeRTOS erlaubt es, wartende Aufgaben zu blockieren und anderen Tasks CPU-Zeit zu geben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer Grund ist definiertes Reaktionsverhalten. Echtzeit bedeutet nicht, dass ein System besonders schnell sein muss. Entscheidend ist, dass bestimmte Reaktionen innerhalb festgelegter Zeitgrenzen erfolgen. Wenn ein Eingang innerhalb weniger Millisekunden ausgewertet werden muss, wenn ein Kommunikationsprotokoll Zeitfenster vorgibt oder wenn eine Steuerung periodisch mit festem Takt arbeiten soll, muss die Software dieses Zeitverhalten ber\u00fccksichtigen. FreeRTOS bietet Timer, Task-Priorit\u00e4ten und Synchronisationsmechanismen, mit denen solche Anforderungen abgebildet werden k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch die Projektgr\u00f6\u00dfe kann den Einsatz von FreeRTOS begr\u00fcnden. Wenn mehrere Entwickler an unterschiedlichen Softwarebestandteilen arbeiten, hilft eine Task-Struktur dabei, Zust\u00e4ndigkeiten zu trennen. Eine Kommunikations-Task kann unabh\u00e4ngig von einer Mess-Task weiterentwickelt werden, solange Schnittstellen und Daten\u00fcbergaben klar definiert sind. Das ersetzt keine Architekturarbeit, schafft aber eine Grundlage, um Funktionen getrennt zu beschreiben, zu testen und zu erweitern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Industrieelektronik, Maschinen, Fahrzeugen, Marine-Ger\u00e4ten und milit\u00e4rischen Systemen entstehen h\u00e4ufig Anforderungen an klare Zust\u00e4nde, nachvollziehbare Kommunikation und definierte Reaktionszeiten. In solchen Umgebungen k\u00f6nnen ungeplante Blockaden, Race Conditions oder Speicherprobleme schwer zu finden sein. FreeRTOS kann helfen, diese Themen systematisch zu bearbeiten, wenn es passend eingesetzt wird. Dabei muss jedes Projekt kl\u00e4ren, welche Funktionen zeitkritisch sind, welche nur periodisch laufen, welche Ereignisse sofort behandelt werden m\u00fcssen und welche Daten zwischen Tasks ausgetauscht werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Echtzeitbetriebssystem ist auch dann naheliegend, wenn Kommunikationsschnittstellen neben Steuer- oder Messaufgaben betrieben werden. Kommunikation erzeugt h\u00e4ufig asynchrone Ereignisse: Daten treffen ein, \u00dcbertragungen enden, Timeouts laufen ab, Protokollzust\u00e4nde \u00e4ndern sich. Werden diese Abl\u00e4ufe direkt mit Mess- oder Steuerfunktionen vermischt, kann die Software schwer lesbar werden. Mit FreeRTOS lassen sich Kommunikationsabl\u00e4ufe in eigenen Tasks oder Event-Strukturen organisieren. Dabei muss sorgf\u00e4ltig entschieden werden, wie Puffer verwaltet werden, wie lange Tasks blockieren d\u00fcrfen und wie Fehlerzust\u00e4nde gemeldet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gegen den Einsatz spricht, wenn die zus\u00e4tzlichen Mechanismen mehr Komplexit\u00e4t erzeugen als sie ordnen. FreeRTOS bringt einen Scheduler, Konfigurationsparameter und Laufzeitverhalten mit, das verstanden werden muss. Ein Projekt sollte deshalb nicht allein deshalb auf FreeRTOS setzen, weil mehrere Funktionen vorhanden sind. Es sollte gepr\u00fcft werden, ob die Aufgaben wirklich parallel koordiniert werden m\u00fcssen, ob harte oder weiche Zeitgrenzen bestehen und ob die Entwicklerstruktur eine Task-basierte Architektur unterst\u00fctzt.<\/p>\n\n\n\n<h2 id=\"warum-nicht-selbst-schreiben\" class=\"wp-block-heading\">Warum nicht selbst schreiben?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein eigener Scheduler oder ein selbst entwickeltes Mini-Betriebssystem wirkt in fr\u00fchen Projektphasen oft \u00fcberschaubar. Eine Hauptschleife, einige Timer, ein paar Flags und Interrupts reichen zun\u00e4chst aus, um erste Funktionen zu demonstrieren. Die Komplexit\u00e4t steigt jedoch, sobald Wartesituationen, Priorit\u00e4ten, Daten\u00fcbergaben, Timeouts, gegenseitige Ausschl\u00fcsse und Fehlerzust\u00e4nde hinzukommen. Viele Eigenentwicklungen beginnen als einfache Ablaufsteuerung und werden sp\u00e4ter zu einem schwer pr\u00fcfbaren System aus Sonderf\u00e4llen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FreeRTOS bietet erprobte Grundmechanismen f\u00fcr genau diese Aufgaben. Tasks k\u00f6nnen blockieren, ohne die gesamte Anwendung anzuhalten. Queues k\u00f6nnen Daten zwischen Tasks \u00fcbertragen. Semaphoren und Mutexes k\u00f6nnen Zugriffe auf gemeinsame Ressourcen koordinieren. Software-Timer k\u00f6nnen wiederkehrende oder verz\u00f6gerte Aktionen ausl\u00f6sen. Diese Funktionen selbst zu schreiben ist m\u00f6glich, erfordert aber ein genaues Verst\u00e4ndnis von Scheduling, Interrupt-Verhalten, Stack-Nutzung, Speicherzugriffen und Nebenl\u00e4ufigkeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Besonders kritisch ist der Umgang mit Nebenl\u00e4ufigkeit. Wenn zwei Programmbestandteile dieselbe Ressource verwenden, etwa einen Kommunikationsbus, einen Speicherpuffer oder eine Zustandsvariable, k\u00f6nnen Fehler auftreten, die nicht bei jedem Testlauf sichtbar sind. Sie h\u00e4ngen davon ab, welche Aufgabe zu welchem Zeitpunkt unterbrochen wird. Solche Fehler lassen sich ohne klare Synchronisationsmechanismen schwer eingrenzen. FreeRTOS stellt Werkzeuge bereit, um diese Zugriffe zu strukturieren. Die Werkzeuge m\u00fcssen jedoch richtig eingesetzt werden. Ein Mutex an der falschen Stelle kann Blockaden erzeugen, eine Queue mit falscher Gr\u00f6\u00dfe kann Daten verlieren, eine zu hohe Priorit\u00e4t kann andere Tasks verdr\u00e4ngen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Timing-Fragen sprechen gegen eine unkontrollierte Eigenl\u00f6sung. Ein selbst geschriebener Scheduler muss entscheiden, welche Aufgabe wann l\u00e4uft. Er muss mit Interrupts umgehen, Wartezeiten abbilden und verhindern, dass langsame Funktionen zeitkritische Abl\u00e4ufe blockieren. In einfachen Systemen kann ein kooperativer Ansatz funktionieren, bei dem jede Funktion regelm\u00e4\u00dfig zur\u00fcckkehrt. Sobald eine Funktion jedoch auf externe Daten wartet oder eine l\u00e4ngere Berechnung ausf\u00fchrt, wird das Verhalten schwerer vorhersagbar. FreeRTOS ist f\u00fcr solche Szenarien ausgelegt, sofern die Architektur passend entworfen wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer Punkt ist die Fehlersuche. Bei einer Eigenentwicklung muss nicht nur die Anwendung, sondern auch die Ablaufsteuerung selbst \u00fcberpr\u00fcft werden. Wenn ein Fehler auftritt, ist unklar, ob die Ursache in der Fachlogik, im selbst geschriebenen Scheduler, in einem Interrupt oder in der Speicherverwaltung liegt. Bei FreeRTOS bleibt die Anwendung ebenfalls pr\u00fcfpflichtig, aber die Grundmechanismen sind klar beschrieben und in vielen Mikrocontroller-Umgebungen verbreitet. Das erleichtert die Eingrenzung, wenn Projektbeteiligte die Konzepte und Konfigurationsoptionen verstehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PICKPLACE betrachtet die Frage \u201eFreeRTOS oder eigene L\u00f6sung?\u201c als technische Abw\u00e4gung. Bei sehr kleinen Systemen kann eine eigene, einfache Struktur sinnvoll sein. Bei Systemen mit mehreren zeitabh\u00e4ngigen Aufgaben, Kommunikation, Sensorik und begrenztem Speicher spricht h\u00e4ufig mehr f\u00fcr FreeRTOS oder ein vergleichbares Echtzeitbetriebssystem. Entscheidend ist nicht der Einsatz eines bestimmten Werkzeugs, sondern die Beherrschbarkeit der Software \u00fcber den Projektverlauf.<\/p>\n\n\n\n<h2 id=\"typische-technische-fragestellungen-in-free-rtos-projekten\" class=\"wp-block-heading\">Typische technische Fragestellungen in FreeRTOS-Projekten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bei FreeRTOS und Echtzeit-Software beginnen viele Projekte mit der Frage, wie die vorhandenen Funktionen auf Tasks aufgeteilt werden. Nicht jede Funktion sollte eine eigene Task werden. Zu viele Tasks erh\u00f6hen den Speicherbedarf und erschweren die Priorisierung. Zu wenige Tasks k\u00f6nnen dazu f\u00fchren, dass unabh\u00e4ngige Abl\u00e4ufe wieder miteinander vermischt werden. Eine sinnvolle Aufteilung orientiert sich an Zeitverhalten, Datenfl\u00fcssen, Schnittstellen und Zust\u00e4ndigkeiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Priorisierung der Tasks ist ein weiterer Arbeitspunkt. Zeitkritische Aufgaben ben\u00f6tigen eine passende Priorit\u00e4t, d\u00fcrfen aber nicht dauerhaft andere Aufgaben verdr\u00e4ngen. Kommunikations-Tasks m\u00fcssen auf Ereignisse reagieren k\u00f6nnen, ohne das System mit Polling zu belasten. Diagnose- oder Hintergrundfunktionen sollten laufen, wenn keine h\u00f6her priorisierten Aufgaben aktiv sind. Diese Priorit\u00e4ten lassen sich nicht isoliert festlegen, sondern m\u00fcssen mit Interrupts, Timern und Blockierverhalten betrachtet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Interrupts m\u00fcssen so gestaltet werden, dass sie Hardware-Ereignisse aufnehmen, aber keine umfangreiche Verarbeitung \u00fcbernehmen. In vielen F\u00e4llen ist es sinnvoll, im Interrupt nur Daten zu sichern oder eine Task zu benachrichtigen. Die Verarbeitung erfolgt dann im Task-Kontext. Dadurch bleiben Interrupt-Laufzeiten begrenzt und das Systemverhalten wird besser nachvollziehbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Speicheranalyse geh\u00f6rt ebenfalls zur Projektarbeit. Jede Task ben\u00f6tigt Stack. Zu kleine Stacks f\u00fchren zu schwer erkennbaren Fehlern. Zu gro\u00dfe Stacks verschwenden RAM, der auf Mikrocontrollern begrenzt sein kann. Zus\u00e4tzlich m\u00fcssen Puffer f\u00fcr Kommunikation, Messdaten oder Zustandsinformationen geplant werden. Bei FreeRTOS-Projekten wird deshalb gepr\u00fcft, welche Speicherbereiche statisch festgelegt werden k\u00f6nnen, wo dynamische Allokation vermieden oder kontrolliert werden sollte und wie Speicherfehler erkannt werden.<\/p>\n\n\n\n<div class=\"wp-block-stackable-columns stk-block-columns stk-block stk-f980141 stk-block-background stk--has-background-overlay\" data-block-id=\"f980141\"><style>.stk-f980141 {background-image:url(https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/03\/programming-background-with-person-working-with-codes-computer-1200.jpg) !important;border-top-left-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-top-right-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-bottom-right-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-bottom-left-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;overflow:hidden !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-f980141-column\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-3eb05d6\" data-v=\"4\" data-block-id=\"3eb05d6\"><style>.stk-3eb05d6 {border-top-width:0px !important;border-right-width:0px !important;border-bottom-width:0px !important;border-left-width:0px !important;}.stk-3eb05d6-container{padding-top:var(--stk--preset--spacing--60, 2.25rem) !important;padding-right:var(--stk--preset--spacing--60, 2.25rem) !important;padding-bottom:var(--stk--preset--spacing--60, 2.25rem) !important;padding-left:var(--stk--preset--spacing--60, 2.25rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-3eb05d6-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-3eb05d6-inner-blocks\">\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-61c3574\" id=\"heading-placeholder\" data-block-id=\"61c3574\"><style>.stk-61c3574 {align-items:center !important;max-width:500px !important;min-width:auto !important;display:flex !important;}<\/style><h2 class=\"stk-block-heading__text\"><span style=\"color: #ffffff;\" class=\"stk-highlight\">Embedded Software-Entwicklung mit PICKPLACE <\/span><\/h2><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-628a190\" data-block-id=\"628a190\"><p class=\"stk-block-text__text\"><span style=\"color: #ffffff;\" class=\"stk-highlight\"><strong>Entwickeln Sie mit PICKPLACE robuste und zuverl\u00e4ssige Echtzeitsysteme.<\/strong><\/span> <br><span style=\"color: #ffffff;\" class=\"stk-highlight\"><strong>Jetzt Projekt anfragen und Ihr elektronisches System effizient in die Umsetzung bringen.<\/strong><\/span><\/p><\/div>\n\n\n\n<div class=\"wp-block-stackable-button-group stk-block-button-group stk-block stk-f2b9581\" data-block-id=\"f2b9581\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-button-group\">\n<div class=\"wp-block-stackable-button stk-block-button stk-block stk-027953f\" data-block-id=\"027953f\"><a class=\"stk-link stk-button stk--hover-effect-darken\" href=\"https:\/\/www.pickplace.de\/category\/software\/\"><span class=\"stk-button__inner-text\">Mehr <\/span><\/a><\/div>\n<\/div><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<h2 id=\"typisch\" class=\"wp-block-heading\">Typische Technologien und Stacks<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RTOS <a href=\"https:\/\/www.freertos.org\/\" target=\"_blank\" rel=\"noopener\">FreeRTOS<\/a> <\/li>\n\n\n\n<li>Mikrocontroller <a href=\"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f407vg.html?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">STM32F407VG<\/a> <\/li>\n\n\n\n<li>IDE <a href=\"https:\/\/www.st.com\/en\/development-tools\/stm32cubeide.html\" target=\"_blank\" rel=\"noopener\">STM32CubeIDE<\/a> <\/li>\n\n\n\n<li>Debugger <a href=\"https:\/\/www.segger.com\/products\/debug-probes\/j-link\/\" target=\"_blank\" rel=\"noopener\">SEGGER J-Link<\/a> <\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/savannah.nongnu.org\/projects\/lwip\/\" target=\"_blank\" rel=\"noopener\">lwIP<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"unsere-leistungen\" class=\"wp-block-heading\">Unsere Leistungen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PICKPLACE unterst\u00fctzt Projekte rund um FreeRTOS und Echtzeit-Software durch Software-Entwicklung, das Aufsetzen von FreeRTOS und die Ausarbeitung von Task- und Thread-Management. Dabei geht es nicht nur um die technische Einbindung des Betriebssystems, sondern auch um die passende Struktur f\u00fcr die jeweilige Embedded-Anwendung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zu unseren Leistungen geh\u00f6rt die Analyse bestehender Mikrocontroller-Software. Wir pr\u00fcfen, welche Aufgaben zeitkritisch sind, welche Abl\u00e4ufe blockieren k\u00f6nnen, welche Interrupts vorhanden sind und wie Daten zwischen Programmteilen ausgetauscht werden. Auf dieser Grundlage kann entschieden werden, ob FreeRTOS sinnvoll ist, welche Architektur passt oder ob eine bestehende Struktur angepasst werden sollte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Aufsetzen von FreeRTOS k\u00fcmmern wir uns um die grundlegende Integration in die Embedded-Software. Dazu geh\u00f6ren die Konfiguration des Schedulers, die Anlage erster Tasks, die Einbindung von Timern und die Definition von Kommunikationsmechanismen zwischen Tasks. Die konkrete Ausgestaltung richtet sich nach Mikrocontroller, Peripherie, Speichergrenzen und vorhandener Softwarebasis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Task- und Thread-Management strukturieren wir Funktionen nach Zust\u00e4ndigkeiten und zeitlichem Verhalten. Wir legen fest, welche Aufgaben als eigene Tasks laufen, welche Ereignisse \u00fcber Queues oder Benachrichtigungen \u00fcbertragen werden und wo Synchronisation notwendig ist. Dabei wird auch betrachtet, welche Funktionen im Interrupt-Kontext bleiben und welche in Tasks verschoben werden sollten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PICKPLACE \u00fcbernimmt au\u00dferdem Entwicklungsarbeiten an FreeRTOS-basierten Anwendungen. Dazu k\u00f6nnen Sensorabfrage, Kommunikationsverarbeitung, Steuerlogik, Messabl\u00e4ufe oder Diagnosefunktionen geh\u00f6ren, soweit sie aus dem Projektkontext hervorgehen. Bestehende Software kann weiterentwickelt, auf eine Task-basierte Struktur umgestellt oder auf Fehler im Zusammenspiel von Tasks, Interrupts und Speicher untersucht werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Fehleranalyse und Debugging betrachten wir typische Ursachen in Echtzeit-Software: blockierende Tasks, falsche Priorit\u00e4ten, Stack-Probleme, unklare Synchronisation, Timing-Abweichungen oder Datenverluste in Kommunikationspfaden. Ziel der Arbeit ist eine nachvollziehbare Eingrenzung der Ursache und eine \u00c4nderung, die zum Systemaufbau passt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die \u00dcbergabe in die weitere Umsetzung dokumentieren wir die relevanten Architekturentscheidungen. Dazu z\u00e4hlen Task-Aufteilung, Priorit\u00e4ten, Datenwege, Synchronisationspunkte, Speicherannahmen und bekannte Grenzen. Diese Dokumentation hilft, sp\u00e4tere Erweiterungen oder Fehlersuchen auf einer klaren technischen Grundlage durchzuf\u00fchren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FreeRTOS und Echtzeit-Software werden eingesetzt, wenn Mikrocontroller mehrere Aufgaben parallel koordinieren und auf Ereignisse innerhalb definierter Zeiten reagieren m\u00fcssen. PICKPLACE arbeitet in solchen Projekten an der Strukturierung, Entwicklung und Bewertung von Embedded-Software, die Sensorik, Steuerungen, Kommunikation oder Messfunktionen abbildet. Im Mittelpunkt stehen dabei Tasks, Interrupts, Timing, Speicherverhalten, Schnittstellen und die Stabilit\u00e4t des Gesamtsystems.<\/p>\n","protected":false},"featured_media":1835,"template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-2488","projekt","type-projekt","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt"}],"about":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/types\/projekt"}],"version-history":[{"count":1,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2488\/revisions"}],"predecessor-version":[{"id":2490,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2488\/revisions\/2490"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/media\/1835"}],"wp:attachment":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/media?parent=2488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/categories?post=2488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/tags?post=2488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}