Direkt zum Inhalt

TOP News

Andreas Lifvendahl Is Percepio’s New CEO

Andreas Lifvendahl Is Percepio’s New CEO

Percepio has appointed Andreas Lifvendahl as Chief Executive Officer. Andreas brings valuable expertise from over 25 years leading and advising technology startups and growth companies. He joins Percepio from IMINT Image Intelligence AB (Imint), where as CEO since 2012 he grew the startup into a publicly traded firm powering visual intelligence for over one billion Android smartphones globally.

    Tracealyzer SDK jetzt verfügbar

    Mit dem Tracealyzer SDK können Anwender, die andere Target RTOS verwenden, eigene Tracealyzer-Integrationen für beliebige RTOS und C/C++-Systeme erstellen.
    Darüber hinaus ermöglicht dies die Erweiterung der Beobachtbarkeit von Tracealyzer über RTOS-Ereignisse hinaus, z.B. durch das Hinzufügen von Instrumentierung in Kommunikationsstacks, Dateisystemen, Treibern und anderen wichtigen C/C++ Bibliotheken in Ihrer Anwendung.

    Percepio Tracealyzer SDK

    Der Tracealyzer SDK ist ab sofort ohne Aufpreis bei Erwerb einer Lizenz nutzbar.

      Tracealyzer 4.7, jetzt auch für Bare-Metall Targets

      Tracealyzer 4.7 bietet eine Vielzahl weiterer neuer Features zur Optimierung der Softwareentwicklung.

      - Observability für beliebige C/C++-Software,
        Bare-Metall Support (ohne RTOS)
      - Profiling-Unterstützung für Automotive-ECUs
      - Verbessertes Applikations-Tracing
      - Kompaktes Logging
      - UDP-Streaming
      - Verbesserte Unterstützung für Arm® Cortex®-A/R
      - Updates für Percepio® DevAlert®

        Artikel: Geräte Feedback-Schleife

        In der Fachzeitschrift elektronik industrie ist ein interessanter Artikel erscheinen "Geräte Feedback-Schleife / Kontinuierliche Geräteüberwachung und automatische Warnungen"

        Eine Geräte-Feedback-Schleife kann ein unschätzbares Werkzeug für die Überwachung der Sicherheit von verteilten Geräten im industriellen Internet der Dinge sein. Sie hilft Entwicklern von Embedded-Systemen, Softwarequalität und Produktleistung zu verbessern.

        Percepio Appoints Software Industry Executive Michel Genard to Its Board of Directors

        Michel GenardPercepio®, the leading provider of observability for critical edge software, today announced the appointment of experienced embedded industry executive Michel Genard to its Board of Directors. Michel Genard has been active in the software industry for more than 30 years, most recently as Vice President of Product Management at Wind River®, which announced in January to be acquired this year by Aptiv PLC (NYSE: APTV) for more than $4B.

        Artikel: Evaluierung der Leistung von Algorithmen-Varianten in Python

        Auf dem Portal www.embedded-software-engineering.de  ist ein interessanter Artikel erscheinen "Evaluierung der Leistung von Algorithmen-Varianten in Python"

        Der Einsatz rekursiver oder auch iterativer Algorithmen wird Angesichts zunehmender Anwendungen des Maschinellen Lernens, etwa bei Edge-KI, immer wichtiger. Mit Python und visuellen Trace-Analyse-Tools lässt sich die Leistungsfähigkeit solcher Algorithmen mit geringem Mehraufwand schnell ermitteln.

        Artikel: Funktionale Sicherheit von RTOS-Applikationen gewährleisten

        Auf dem Portal www.embedded-software-engineering.de und in der Ausgabe 22.2021 der Fachzeitschrift Elektronik Praxis ist ein interessanter Artikel erscheinen "Funktionale Sicherheit von RTOS-Applikationen gewährleisten"

        Ein Echtzeit-Betriebssystem mit Multi-Threading kann ein Embedded-System zweifellos effizienter machen. Dabei müssen allerdings mehrere Aspekte beachtet werden, sonst droht Chaos beim Verarbeiten der einzelnen Tasks.

        Tracealyzer 4.5 freigegeben: ESP32, Zephyr, Lauterbach µTrace, STLINK-V3, GBD-ITM

        Tracelazyer 4.5  wurde heute freigegeben, mit Support für Zephyr RTOS und Single- und Multicore-ESP32-MCUs mit ESP-IDF FreeRTOS

        Das neue Release bringt auch eine verbesserte Unterstützung von Lauterbach µTrace sowie verbesserten Support für die Debug-Probe STLINK-V3. Des weiteren ITM Support für GDB Debugger.

          Weitere News Percepio

          08.06.2022 | DevAlert Sandbox
          02.09.2019 | RTOS Schulungen
          20.02.2018 | Tracealyzer 4

          Beratung

          Lassen Sie sich beraten, nutzen Sie unser Formular, wir melden uns umgehend bei Ihnen zurück. Oder rufen Sie an:
          +49 251 98729-0

          Tracing und Visualisierung in embedded Linux Systemen

          Das Debugging der Embedded-Software kann ein anspruchsvoller, zeitraubender und nicht vorhersehbarer Faktor bei der Entwicklung von Embedded-Systemen sein. Schließlich wirft das Aufdecken eines Fehlers bei der Programmausführung unmittelbar die Frage auf, wie die Software in den fehlerhaften Zustand geraten ist, welche Kombination von Eingangssignalen und zeitlichen Abläufen den Fehler verursacht hat und warum der Fehler aufgetreten ist.

          Die Antworten auf diese Fragen lassen sich häufig durch Tracing finden. Beim Tracing wird das Verhalten der Software zur Laufzeit aufgezeichnet, sodass die gesammelten Trace-Daten nachträglich analysiert werden können. Auch wenn das Tracing meist während der Entwicklung erfolgt, eignet es sich ebenso gut für den Produktionseinsatz. Es ist dann ununterbrochen aktiv und kann Fehler erfassen, die nach dem Deployment auftreten. Dieses Production Tracing kann eine effektive Technik zum Detektieren insbesondere solcher Fehler sein, die nur selten vorkommen und sich deshalb mit einem Debugger nur schwierig reproduzieren lassen. Unter anderem kann es sich hier um Situationen handeln, in denen ein System langsamer reagiert als erwartet, in denen es falsche oder suboptimale Ergebnisse ausgibt oder in denen es sich aufhängt oder abstürzt.

          Das Tracing kann entweder in der Hardware (d. h. im Prozessor) oder softwaremäßig erfolgen. Während das hardwarebasierte Tracing eine detaillierte Historie der verarbeiteten Befehle liefert, konzentriert sich das softwarebasierte Tracing auf ausgewählte Ereignisse, und dies üblicherweise im Betriebssystem und an wichtigen Schnittstellen auf der Applikations-Ebene.

          Per Hardware generierte Traces enthalten Details zum Kontrollfluss und haben keine Rückwirkungen auf die Arbeitsweise des untersuchten Systems. Diese Technik setzt jedoch spezielles Equipment und eine für das Tracing geeignete Hardwareplattform voraus.

          Das Software-Tracing kommt dagegen ohne besondere Hardware aus und lässt sich sogar in bereits im Einsatz befindlichen Produkten installieren – ähnlich wie die Blackbox in einem Flugzeug. Das Software-Tracing ermöglicht außerdem das Abspeichern von Daten, während das Hardware-Tracing in der Regel nur auf den Kontrollfluss beschränkt ist. Es trifft zu, dass das Software-Tracing die CPU beansprucht, jedoch beträgt der Overhead üblicherweise weniger als 1 %. Zum Abspeichern der Trace-Daten ist das Software-Tracing (zumindest anfangs) auf das RAM des Systems angewiesen. Normalerweise sind die RAM-Puffer jedoch konfigurierbar, sodass die richtige Balance zwischen dem Speicherbedarf und der Länge der aufgezeichneten Verarbeitungshistorie gefunden werden kann.

          Besonders wichtig ist das Tracing für Systeme mit integriertem Betriebssystem. Ein zentrales Feature der Betriebssysteme ist das Multi-Threading, also die Fähigkeit zur Verarbeitung mehrerer Programme (Threads) auf einem Prozessor, indem schnell zwischen verschiedenen Verarbeitungskontexten hin- und hergeschaltet wird. Durch das Multi-Threading wird das Verhalten der Software jedoch komplexer, und der Entwickler hat weniger Kontrolle über das Verhalten zur Laufzeit, da die Verarbeitung vom Betriebssystem unterbrochen werden kann.

          Tracing in Linux mit LTTng
          LTTng ist eine Open-Source-Technologie für das softwarebasierte Tracing in Linux. Das höchst effiziente LTTng ist praxiserprobt und wird von den meisten Linux-Distributionen unterstützt. Der LTTng Kernel Tracer kann Scheduling-Events, Systemaufrufe, IRQs, das Speichermanagement und weitere Aktivitäten auf der Kernel-Ebene aufzeichnen. Der LTTng User-Space Tracer (LTTng-UST) dagegen zeichnet vom Anwender definierte Ereignisse im Applikations-Code auf.

          Die Trace-Daten werden zunächst im RAM abgelegt, können aber fortlaufend auf eine Disk übertragen oder über eine Netzwerkverbindung an ein anderes System übermittelt werden. Eine weitere Option ist das Ablegen der Trace-Daten in einem zyklischen RAM-Puffer, in dem die jeweils ältesten Daten von den neuen überschrieben werden.

          Obwohl LTTng auf dem Instrumentieren der Software beruht, erfordert es keinen Rebuild des Linux-Kernels. Stattdessen nutz LTTng so genannte Tracepoints, die sich bereits an strategisch wichtigen Stellen des Kernels befinden. Diese Tracepoints fungieren als Platzhalter für Funktionsaufrufe, die normalerweise inaktiv sind, aber von LTTng aktiviert werden können.

          Mit LTTng-UST können Entwickler individuelle Ereignisse in Anwender-Applikationen und Library-Code aufzeichnen. Es ist sogar möglich, ausgewählte Funktionsaufrufe ohne Modifizieren des Quellcodes zu verfolgen. Hierzu wird einfach eine geteilte Objektdatei mit Wrapper-Funktionen erstellt. Diese enthält Tracepoints, die beim Starten der Applikation in LD_PRELOAD spezifiziert werden.

          Das Funktions-Wrapping von LTTng-UST ist für den Applikations-Code völlig transparent und erfordert keine Neukompilierung. Beim ersten Aufruf schlägt die Wrapper-Funktion die Adresse der ursprünglichen Funktion nach und legt sie in einem Funktionszeiger ab.

          Visualisierung von LTTng-Traces in Tracealyzer
          Da LTTng binäre Datendateien ausgibt, wird für die Auswertung ein Tool benötigt. Grundsätzlich könnte man die Trace-Daten mit Babeltrace in Textdateien umwandeln, jedoch es ist schwierig, angesichts des enormen Umfangs an Trace-Daten im Textformat den Überblick zu behalten. Deutlich vereinfacht wird die Analyse durch ein Visualisierungs-Tool, denn das menschliche Gehirn kann Muster in Bildern wesentlich leichter erkennen als in Textdaten.

          Die schwedische Firma Percepio AB hat unter dem Namen Tracealyzer  eine Familie von Trace-Visualisierungstools entwickelt. Tracealyzer for Linux  ist für die Visualisierung von LTTng-Trace-Daten konzipiert und stellt im Interesse einer einfacheren Auswertung mehrere grafische Ansichten zur Verfügung. Tracealyzer erkennt und markiert Abhängigkeiten zwischen zusammenhängenden Ereignissen in den Trace-Daten (z. B. das Senden und Empfangen eines Semaphorsignals). Durch das Markieren solcher Abhängigkeiten lässt sich das Verhalten des Betriebssystems leichter verstehen (z. B. weshalb einige Threads blockiert und andere getriggert werden).

          Die Haupt-Traceansicht von Tracealyzer stellt die Ereignisse (z. B. Systemaufrufe) als farblich codierte Labels entlang einer vertikalen Zeitachse dar. Diese Labels lassen sich auf verschiedene Weise filtern und werden automatisch so ausgerichtet, dass es zu keinen Überschneidungen kommt. Die Hintergrundfarbe der Labels kennzeichnet den Status und den Typ der Verarbeitung. Zum Beispiel werden rote Labels für Systemaufrufe verwendet, die den aufrufenden Thread anhalten. Anwenderspezifische Applikations-Ereignisse aus LTTng-UST lassen sich so konfigurieren, dass sie entweder als Dienstaufrufe (z. B. malloc) oder als Anwender-Ereignisse (generische Debug-Meldungen) erscheinen.

          Neben der Hauptansicht von Tracealyzer gibt es mehr als 20 weitere Ansichten, die Auskunft über die CPU-Auslastung, Reaktionszeiten, Kernel-Blockierungen, die Scheduling-Intensität, Kernel-Aufrufe und andere im Fokus stehende Ereignisse geben. Anwenderspezifische Ereignisse können separat in einer Text-Log-Ansicht dargestellt werden, und die Argumente von Anwender-Ereignissen lassen sich als Signal-Plots visualisieren. Sämtliche Ansichten sind außerdem miteinander verknüpft: durch Anklicken einer Task, eines Ereignisses oder eines Datenpunkts erscheint somit eine neue Ansicht, in der das angeklickte Element markiert ist. Diese Verknüpfung erleichtert den Umgang mit mehreren Ansichten bei der Untersuchung eines bestimmten Intervalls im Trace.

          Zusammenfassung
          Das Tracing ist ein wirkungsvolles Hilfsmittel zum Analysieren von Multi-Threaded-Softwaresystemen. In Linux erfolgt das Tracing mit LTTng, einer ausgereiften und bewährten Open-Source-Lösung. Percepio Tracealyzer for Linux ermöglicht das Visualisieren von LTTng-Trace-Daten mithilfe mehrerer, miteinander verknüpfter grafischer Ansichten. Tracealyzer erleichtert Softwareentwicklern den Zugang zu einem großen Umfang dicht gepackter Trace-Daten, sodass das Tracing noch effektiver genutzt werden kann. Tracealyzer unterstützt die Entwickler beim Verstehen komplexer Trace-Daten, beim Detektieren von Fehlern und beim Feinabstimmen der Performance, sodass unter dem Strich bessere Software entsteht.



          Tracealyzer RTOS

          Unterstützen Sie Ihre Softwareentwicklung mit visueller Trace-Diagnose!


          Tracealyzer bietet eine neue intuitive Möglichkeit für den Softwareentwickler das Echtzeitverhalten von embedded Echtzeit-Software-Systeme zu analysieren. Sie finden damit Probleme schneller, vermeiden diese und optimieren die Performance Ihres System schnell und einfach.

          Tracealyzer unterstützt das kontinuierliche Trace Streaming und ermöglicht so ein praktisch unbegrenztes Tracing von Task-Scheduling-Abläufen, Interrupts und Applikations-Logging. Das Trace Streaming wird durch Debugg Probes (SEGGER J-Link, KEIL ULINK) ermöglicht, was auf ARM Cortex-M- und Renesas RX-Mikrocontrollern ein hohes Performance-Niveau ermöglicht. Unterstützt wird das Trace Streaming auch über Netzwerkverbindungen, USB und an die Dateisysteme von Geräten mit beliebigen, vom RTOS unterstützten Prozessoren.

          Unterstützt werden FreeRTOS + Amazon FreeRTOS + SAFERTOS, Micrium µC/OS-III, On Time RTOS-32, ARM KEIL RTX5, Microsoft Azure RTOS ThreadX, Synopsys EV6x OpenVX, Zephyr, PX5

          Percepio
          Analyse , Debugger

          Tracealyzer Linux

          Unterstützen Sie Ihre Softwareentwicklung mit visueller Trace-Diagnose!

          Tracealyzer von Percepio bietet eine neue intuitive Möglichkeit das Verhalten von Linux basierten Systemen im Detail zu analysieren. Sie finden damit Probleme schneller, vermeiden diese und optimieren die Performance Ihres Systems schnell und einfach.

          Percepio
          Analyse , Debugger

          Tracealyzer VxWorks

          Unterstützen Sie Ihre Softwareentwicklung mit visueller Trace-Diagnose!

          Tracealyzer von Percepio bietet eine neue intuitive Möglichkeit das Echtzeitverhalten von Wind River VxWorks (ab 5.5) basierten Systemen zu analysieren. Sie finden damit Probleme schneller, vermeiden Probleme und optimieren die Performance Ihres Systems schnell und einfach.

          Percepio
          Analyse , Debugger

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