Carbone: Die Grenzen setzen die Bandbreite der Verbindung zum Entwicklungscomputer und die Geschwindigkeit, mit der das Entwicklungssystem die eingehenden Daten empfangen und verarbeiten kann.
Wo liegen die Unterschiede zu einem Hardware Debugger?
Carbone: Ein Hardware Debugger sammelt Informationen über die abgearbeiteten Prozessor-Instruktionen oder Prozessor-Metadaten und speichert diese Daten in einem Trace-Datensatz zur weiteren Analyse. ViewX sammelt Anwendungsdaten: CPU-Nutzung je Thread, Netzwerk-Traffic und Paketgrößen, Speichernutzung, freie Ressourcen usw. Der Hardware Debugger wird typischerweise dazu genutzt, im Falle eines Programmfehlers zurückzugehen und die Vorgeschichte und damit die Ursache zu sehen. Die Systemdaten, die ViewX sammelt, kann sich der Entwickler entweder live in Echtzeit ansehen oder als Statistik über die Gesamtlaufzeit des Systems von Beginn an.
Was ist so schlimm daran, wenn ein paar Netzwerkpakete und damit z.B. Sensordaten einige Mikro- oder Millisekunden später in die Cloud gesendet werden?
Carbone: Wenn das nicht oft vorkommt, wird der Einfluss auf das System nur gering sein. Geschieht es öfter, dann bedeutet das eine ineffektive Nutzung der Pakete bzw. eine schlechte Übertragungsqualität des Datenkanals. Außerdem sind die meisten IoT-Systeme nicht mit großzügigen Ressourcen gesegnet, haben also keine großen Warteschlangen für die Netzwerkpakete. Ressourcenkonflikte können in diesen kleinen Systemen nicht nur dazu führen, dass mal ein Paket verloren geht, sondern können zum Zusammenbruch der gesamten Kommunikation führen.
Was sind die Hard-/Software-Voraussetzungen für den Einsatz von ViewX? Kann man es auf jeder Architektur einsetzen?
Carbone: ViewX kann jedes System analysieren und das Systemverhalten zeigen, auf dem ThreadX und NetX laufen. Das ist möglich bei allen ARM-Architekturen und auf den meisten anderen 32-bit-Architekturen wie MIPS, Tensilica, ARC und mehr als 20 anderen. Der Agent auf dem Zielsystem wird in Form von ANSI-C-Code geliefert und kann damit durch den Nutzer angepasst werden. Allerdings wird das kaum nötig sein, denn wir haben den Agent gleich so entwickelt, dass er sehr flexibel ist und nur die Daten sammelt, die durch die ViewX-Benutzeroberfläche abgefragt werden. So lässt sich dynamisch eine sehr große Bandbreite von Informationen ein- bzw. ausschließen.