Laufzeit-Trace
Scope-Spannen, Marker und Aufzeichnungslücken auf einer lesbaren Zeitachse. Sehr dichte Fenster werden als Aufrufdichte gezeichnet.
FUNKTIONEN · LAUFZEIT-TRACE
Wann laufen deine Funktionen, Tasks und Interrupts, welche kosten die meiste Zeit, und warum war dieser Aufruf langsam? Von KymoCore auf dem Mikrocontroller aufgezeichnet, live in KymoStudio angezeigt.
Eine Schleife ist manchmal zu langsam, ein Task verpasst seine Periode, und ausgegebene Zeitstempel verändern genau das Zeitverhalten, das du sehen willst. Pins für den Logic Analyzer gehen schnell aus und zeigen nicht, welche Funktion gerade beschäftigt war.
Makros in deiner Firmware zeichnen Funktionsein- und -austritte, Marker, ISRs und Task-Wechsel in einen begrenzten Puffer auf. KymoStudio macht daraus eine Zeitachse, einen Aufrufbaum und Statistiken – über dieselbe Leitung wie deine Messwerte.
Scope-Spannen, Marker und Aufzeichnungslücken auf einer lesbaren Zeitachse. Sehr dichte Fenster werden als Aufrufdichte gezeichnet.
Der Aufrufbaum eines gewählten Aufrufs – nur sein Teilbaum und die Marker seines Tasks, über Auswahl und Zeitcursor mit dem Trace verbunden.
Jede Quelle listet ihre Tasks und Interrupts mit Aufrufzahl. Ein Klick filtert die Zeitachse.
Auf Mehrkern-Targets werden die Spuren je CPU-Core gruppiert; Aufrufe mit Core-Wechsel sind markiert.
Aufzeichnung speichern, wieder öffnen, Abspielgeschwindigkeit wählen und Ereignis für Ereignis durchgehen. Export als CSV oder Chrome-Trace-JSON.
Verlorene oder übersprungene Ereignisse werden als Lücke markiert statt versteckt.
Berechnet aus den Ein- und Austritten, die KymoCore ohnehin aufzeichnet – ohne Firmware- oder Protokolländerung.
Jede Funktion mit Aufrufen, Eigenzeit, Anteil, typischer Laufzeit und Maximum. Als Liste oder nach Task gruppiert.
Ein Balken von Minimum über typisch bis p95 und Maximum. Funktionen, deren p95 mindestens doppelt so lang ist wie typisch, sind markiert.
Periode, Frequenz, Jitter und Auslastung periodischer Schleifen; Abstände und Laufzeit-Perzentile für lastabhängige Worker.
Ein Punktdiagramm aller Aufrufe zeigt Lastphasen und Ausreißer. Ein Klick öffnet den Aufruf im Funktionsablauf.
Vergleicht die langsamsten Aufrufe je Unteraufruf mit typischen und zeigt, woher die Mehrzeit kommt.
Hebt optional Aufrufe hervor, die mehr als doppelt so lange dauern wie typisch für ihre Funktion.
Die Trace-Makros gehören zu KymoCore. Mainloop-Firmware braucht kein RTOS; Task- und Interrupt-Ereignisse ergänzen den Kontext, wenn dein Plattform-Port sie liefert.
// Kontexte und Symbole kommen aus dem generierten Profil
void process_frame(void)
{
KYMO_TRACE_SCOPE(&recorder, KYMO_CONTEXT_MAIN, KYMO_SYMBOL_PROCESS_FRAME);
parse_payload();
decompress();
}