Debugger für ARM-Cortex-M-Controller Optimiert durch Energy Profiling

Bei Energy Profiling werden Leistungsaufnahme und Quellcode der Anwendung korreliert, um daraus Optimierungen für ein möglichst energieeffizientes System abzuleiten. Doch wie gewinnt man die nötigen Daten? - Mit dem µTrace stellt Lauterbach einen passenden Debugger für ARM-Cortex-M-Controller vor.

Bei Embedded-Systemen ist neben Funktionsumfang und Rechenleistung der Energiebedarf ein wichtiges Kriterium, das als Stand-by-Zeit oder Betriebszeit häufig über den Kauf und damit über den Erfolg eines Produktes entscheidet. Aber auch weil Strom und Temperatur Halbleiterbauteile belasten und die Alterung beschleunigen, ist es besonders für Systeme in temperaturkritischen Umgebungen wichtig, Verlustleistung und die damit verbundene Eigenerwärmung zu reduzieren. Entschleunigte Alterung verlängert die Lebensdauer und erhöht so die Qualität der Produkte.

Heutige Halbleiterprodukte haben bereits im Design intelligente Versorgungskonzepte vorgesehen, um applikationsabhängig die Energieaufnahme  zu steuern. So können Frequenzen variiert, Module bei Nichtbenutzung abgeschaltet oder über Power-down-Modi nahezu der gesamte Chip in den Ruhezustand versetzt werden. Es ist Aufgabe der Software, diese Möglichkeiten der Hardware optimal einzusetzen und dabei den Energiebedarf zu minimieren.

Neuralgische Punkte aufspüren

Die elektrische Energie setzt sich als Produkt aus den drei Parametern Strom, Spannung und Zeit zusammen, die in derartigen Systemen einer starken Dynamik unterworfen sind. Im iterativen Prozess der konstruktiven Optimierung muss es mit der messtechnischen Erfassung möglich sein, Rückschlüsse auf die Ursachen der Dynamik im Verlauf von Strom und Spannung ziehen zu können. Dies gelingt, wenn die Verbrauchswerte dem Ablauf der Applikation zugeordnet werden können. Anhand dieser Korrelation kann die Energieeffizienz beurteilt werden, um daraus geeignete Korrekturmaßnahmen abzuleiten, z.B. durch Optimierung des Speichers, die Verwendung interner und externer Ressourcen oder den Austausch verbrauchsintensiver Bauteile.

Bei dieser Aufgabe helfen Trace32-Debugger, die mit den notwendigen Schnittstellen zum Target ausgestattet sind und über ausreichende Kapazitäten zur Speicherung der Trace- und Verbrauchsdaten verfügen. Das Aufzeichnen der Strom- und Spannungswerte mit Debuggern und die Auswertung über das Graphical User Interface (GUI) PowerView bezeichnet man als Energy Profiling.

Energy Profiling mit dem µTrace

Der µTrace ist Lauterbachs neuestes Produkt, das Debug- und Trace-Funktionen in einem Gerät integriert. Optimiert für ARM-Cortex-Prozessoren, unterstützt er eine Vielzahl von Derivaten unterschiedlicher Hersteller. Bild 1 zeigt den Messaufbau für das Energy Profiling mit dem µTrace. Der Debugger ist hier über zwei Kabel mit dem Target und über ein USB-3.0-Interface mit dem Host-Rechner verbunden. Das 20-polige Debug-Kabel bedient zwei Schnittstellen am Prozessor. Über JTAG/cJTAG/SWD werden Debug-Befehle abgesetzt und damit der Programmfluss gesteuert und bei unterbrochener Programmausführung auf Systemressourcen zugegriffen. Über diese Schnittstelle werden die prozessorinternen Trace-Module (4-bit-ETM) konfiguriert, die während der Laufzeit die Zugriffe der CPU auf Befehle und Daten über bis zu vier Signale des gleichen Kabels nach außen protokollieren.

Mit einer Analog-Probe von Lauterbach werden über das zweite Kabel die Messwerte von Strom und Spannung eingelesen. Hier stehen vier Kanäle zur Spannungsmessung und drei Kanäle zur Strommessung zur Verfügung. Die Aufnahme der Stromwerte benötigt einen niederohmigen Shunt-Widerstand in der Versorgungsleitung auf dem Target, der nach dem ohmschen Gesetz einen dem Strom proportionalen Spannungsabfall verursacht. Die Probe kann jeweils 625.000 Samples pro Sekunde erfassen, die anschließend mit einer Breite von 12 bit digital dargestellt werden.

Dem µTrace steht eine interne Kapazität von 256 MByte zur Speicherung der Messreihen der Trace-Daten und der Strom- und Spannungswerte zur Verfügung. Die Reichweite des Speichers kann erweitert werden, indem die Trace-Daten während der Laufzeit zum Hostrechner gesendet werden.