Direkt zum Inhalt

NEWS

Die häufigsten RTOS Entwicklungsfehler und wie man sie erkennt.

Bei der Verwendung eines Echtzeitbetriebssystems (RTOS) können Embedded-Entwickler auf einer höheren Abstraktionsebene arbeiten, ähnlich wie bei der Umstellung von der Programmierung in der Assember auf C. Die Arbeit auf dieser höheren Ebene kann es einfacher machen, komplexe Anwendungen zu entwerfen, aber während ein RTOS die Komplexität des Anwendungsquellcodes reduziert, reduziert es nicht die inhärente Komplexität der Anwendung selbst. Das macht es schwer die Anwendung zu validieren und zu debuggen.

Was die RTOS-basierte Entwicklung schwieriger macht als das Schreiben von Bare-Metal-Superschleifenanwendungen, ist, dass RTOS-Tasks keine isolierten Einheiten sind, sondern Abhängigkeiten aufweisen, die andere Aufgaben auf unerwartete Weise verzögern können.  So können schwer fassbare Fehlern oder Leistungsprobleme im Endprodukt auftauchen.  Eine Reihe scheinbar einfacher RTOS-Aufgaben kann zu einem überraschend komplexen Laufzeitverhalten bei der gemeinsamen Ausführung als System führen; es kann unzählige Ausführungsszenarien geben, die durch Tests oder Code-Reviews nicht vollständig abgedeckt werden können.

Probleme durch Multitasking

Die Herausforderung für Entwickler besteht darin, dass, als die Entwicklung auf der Abstraktionsleiter nach oben kam, die Debugging-Tools nicht mithalten konnten. Während sich Standard-Debugging-Tools immer noch hauptsächlich auf Haltepunkte und Einzelschritte im Quellcode konzentrieren, gibt die visuelle Trace-Diagnose Entwicklern einen vollständigen Einblick in das Verhalten der Anwendung auf Systemebene.

Die Hauptaufgabe eines RTOS besteht darin, Multitasking bereitzustellen, bei dem mehrere Aufgaben parallel ausgeführt werden können, um ein gemeinsames Ziel zu erreichen. Entwickler von RTOS-basierten Anwendungen können eine gewisse Kontrolle über Parameter wie Aufgabenprioritäten behalten, was wiederum ein deterministisches Echtzeitverhalten ermöglicht, aber sie verlieren die Kontrolle über die feineren Details. So ist beispielsweise der Programmablauf aus dem Quellcode nicht mehr ersichtlich, da das Betriebssystem entscheidet, welche Aufgabe zu einem bestimmten Zeitpunkt ausgeführt werden soll.

Jitter, Deadlock und andere Probleme

Mit einem RTOS und visueller Trace-Diagnose können Entwickler auf dieser höheren Abstraktionsebene arbeiten und Timing- und Synchronisationsaspekte ihrer Anwendung erfassen, die traditionelle Debugger einfach nicht sehen können.

Wir haben fünf häufige Fehler dieser Art bei Echtzeitanwendungen identifiziert:

  • CPU starvation
  • Jitter
  • Priority inversion
  • Deadlock
  • Memory leaks

Laden Sie hier weiter unten das neues Whitepaper von Percepio The Five Most Common RTOS Development Bugs-And How to Spot Them herunter, um mehr darüber zu erfahren, wie Tracealyzer Sie bei der Suche und Behebung dieser Fehler unterstützen kann.

Und denken Sie daran: Fehler, die im Labor gefunden werden, sind viel billiger zu beheben als Fehler, die im Feld entdeckt werden.

 

Hersteller / Partner
Funktion

© Embedded Tools GmbH | Schlikötterstiege 61 | 48161 Münster | Germany/Deutschland | Datenschutzerklärung | Impressum