ABC Company Conference
Unsubscribe
Online English
Banner_VXW_Text

„Ein Mensch, der seine Meinung nie ändert, lernt nichts.“
(Malala Yousafzei, pakist. Friedensnobelpreisträger)

Newsletter im Juni 2026

                                      - Unkontrollierte Timing-Effekte
                                    - Röntgenblick in die Entwicklung
                                        - Systemleistung optimieren
                   - So funktioniert es: Von Ereignissen zu Erkenntnissen
                                        - 100%ige Software-Lösung


 Liebe Kundin, Lieber Kunde,


Wie jeder Entwickler in seiner täglichen Praxis wiederholt erfährt, reichen herkömmliche Verifikationsmethoden nicht aus, um Multithread-Systeme vollständig zu verifizieren.

Die meisten Embedded Systeme laufen heute mit Multithread-Software unter Linux oder Echtzeitbetriebssystemen (RTOS). Multithreading bietet zwar Vorteile gegenüber Single-Thread-Designs, erhöht jedoch die Komplexität der Software und die Herausforderungen bei der Verifikation.

Herkömmliche Verifikationsmethoden wie Code-Review, statische Analyse und Funktionstests sind zwar notwendig, sind aber für Multithread-Systeme unzureichend.

Diese Systeme weisen komplexe Abhängigkeiten zwischen Threads auf, die durch explizite und implizite Interaktionen verursacht werden und oft von Schwankungen der Laufzeit beeinflusst werden – also von emergenten Verhaltensweisen, die im Code selbst nicht sichtbar sind.
 










Unkontrollierte Timing Effekte
Timing-Effekte auf Thread-Interaktionen werden während des Testens in der Regel nicht kontrolliert, sodass selbst umfangreiche Tests möglicherweise nur einen Bruchteil der potenziellen Ausführungs-szenarien aufdecken und latente Fehler erst nach der Bereitstellung entdeckt werden.

Embedded Software muss oft Echtzeitanforderungen erfüllen. Beispielsweise soll ein Steuerungssystem beispielsweise alle 5 Millisekunden Signale ausgeben, wobei jede Verzögerung einen Fehler darstellt. Diese Anforderungen hängen nicht nur von der Ausführungszeit einzelner Threads ab, sondern auch von Abhängigkeiten zu anderen Threads.

Die Verifizierung von Echtzeitanforderungen umfasst daher mehr als nur die Messung von Timing-Metriken – sie erfordert die Identifizierung potenzieller Risiken aus Thread-Interaktionen, die die Einhaltung der Timing-Anforderungen beeinträchtigen könnten.

Die De-facto-Lösung ist die Beobachtung zur Laufzeit mittels Software-Tracing. Percepio Tracealyzer bietet visuelle Analysefunktionen für die Software-Designanalyse und die Verifizierung von Echtzeitanforderungen. Durch den Einsatz von System-Tracing mit Tracealyzer können Entwickler:
  • Detaillierte Laufzeitdaten zu Thread-Ausführung, Interaktionen und Timing über lange Testläufe hinweg ohne spezielle Hardware erfassen.

  • Anomalien mithilfe von Übersichten auf hoher Ebene wie CPU-Auslastungsdiagrammen oder Statistikberichten erkennen und anschließend Details in der Ausführungs-Trace-Ansicht untersuchen.

  • Software-Timing-Schwankungen mithilfe des „Actor Instance Graph“ analysieren, der Timing-Metriken für jeden Thread im Zeitverlauf anzeigt.

  • Thread-Abhängigkeiten über den „Communication Flow Graph“ visualisieren, der Thread-Interaktionen über IPC-Objekte darstellt.
Tracealyzer setzt auf effiziente Software-Instrumentierung statt auf spezielle Hardware. Trace-Daten werden über Echtzeit-Ethernet-Streaming oder unterstützte Debug-Probes an den Host übertragen. 
  













Röntgen-Blick in die Entwicklung
Visuelle Trace-Transparenz sorgt für den „Röntgenblick“ in Ihre Embedded Softwareentwicklung. Tracealyzer hilft das tägliche Debugging zu beschleunigen, Probleme zu lösen und letztlich bessere Produkte pünktlich zu liefern.

Was sagt mehr als die Erfahrungen unserer Kunden:

„Tracealyzer hat unsere Entwicklungsgeschwindigkeit verdoppelt. Probleme, deren Lösung sonst Tage dauern würde, sind mit diesem Tool auf einen Blick erkennbar und lassen sich schnell beheben. Wir nutzen es ständig.“ — Alex Pabouctisids, Lead Firmware Engineer, Flyability

Wenn Sie genug haben von endlosen Stunden beim Debuggen von Embedded C/C++-Code, verabschieden Sie sich von mühsamer Fehlerbehebung und profitieren Sie von der beschleunigten Entwicklung mit Percepio Tracealyzer.

Herkömmliches Debugging ist bei den komplexen RTOS- oder Linux-Systemen von heute oft ineffektiv und kann 40–50 % der Entwicklungs-zeit in Anspruch nehmen.

Mit visueller Trace-Transparenz beschleunigen Sie Ihr tägliches Debugging  und lösen Probleme, bei denen herkömmliches Debugging an seine Grenzen stößt.
  













Systemleistung optimieren
 
„In weniger als 5 Tagen nach Einsatz des Tools haben wir die Leistung unserer Grafik-Rendering-Engine um das Dreifache verbessert“ – Terry West, CEO, Serious Integrated, Inc.

Tracealyzer bietet erweiterte Profiling-Funktionen, die die Ereignisse hinter den Zahlen aufzeigen. Lokalisieren Sie Leistungsengpässe und schöpfen Sie das volle Potenzial Ihrer Hardware aus. Stellen Sie sicher, dass Sie die Leistungsziele Ihres Produkts erreichen und eine reaktionsschnelle Benutzererfahrung haben.

Die Optimierung ist für Multithread-RTOS- oder Linux-Systeme eine Herausforderung. Wenn ein Thread langsam ist, liegt dies oft an Faktoren, die im Quellcode nicht erkennbar sind. Visuelle Trace-Transparenz liefert das vollständige Bild und vereinfacht die Optimierung. 















Und so funktioniert es: von Ereignissen zu Erkenntnissen
 
Percepio Tracealyzer visualisiert das Verhalten und das Timing von Embedded Software auf Basis einer im Zielsystem hinzugefügten Software-Tracing-Bibliothek.

Diese erweitert Ihren RTOS-Kernel um eine leichtgewichtige Instrumentierung, die zu bereits vorhandenen Hooks hinzugefügt wird, um wichtige Ereignisse wie Taskwechsel, Kernel-API-Aufrufe, Blockierungen, Timeouts und mehr zu erfassen.

Es gibt außerdem eine C-API für benutzerdefinierte Protokollierung („Benutzerereignisse“), mit der Sie die Tracing-Funktionen erweitern können, um Variablenwerte und andere Debug-Ereignisse zu protokollieren.

Traces können in Tracealyzer visuell anhand verschiedener grafischer Ansichten und Analysen für Debugging, Profiling und Anomalieerkennung untersucht werden, darunter CPU-Auslastungsdiagramme, Stack- und Heap-Speichernutzung sowie Zeitdiagramme.

Die Tracing-Funktion kann als kontinuierliches Live-Streaming oder als In-Memory-Snapshots ausgeführt werden, um kritische Momente zu erfassen, die zu einem Problem führen.  













100%ige Software-Lösung
 
Tracealyzer ist eine 100 %ige Softwarelösung und benötigt keinen Trace-Port auf Ihrem Gerät, kann jedoch dennoch von schnellen Debug-Probes wie IAR I-Jet und SEGGER J-Link als Hochgeschwindigkeitsschnittstellen für kontinuierliches Trace-Streaming profitieren. 




Interessiert? Lassen Sie es mich wissen. Gerne schlage ich Ihnen eine Lösung mit dem Percepio Tracealyzer vor.

Wenn Sie Tracealyzer noch nicht getestet haben, können Sie dies hier kostenlos tun.

Für einen schnellen Einstieg in Tracealyzer sind die kostenlosen Tutorial-Videos bestens geeignet. Diese machen Sie mit dem Tool vertraut.

Herzlichst, Ihr
Marian A. Wosnitza


„Wer nicht neugierig ist, entdeckt nichts."
(Zora Neale Hurston, amerik. Schriftsteller)