ABC Company Conference
Unsubscribe
Banner_VXW_Text

„Wer es einmal soweit gebracht hat, dass er nicht mehr irrt,
der hat auch aufgehört zu arbeiten."
(Max Planck, deutsche Physiker)

Newsletter im November 2022:

- Neu und Online: Percepio.com
- Unterstützung für Cadence Tensilica Cores
- Auf die Größe kommt es an
- Benchmark-Größe - emBench-IoT 

- Code-Dichte von SEGGER Embedded Studio
- Verfügbarkeit von emBench-IoT


Liebe Kundin, Lieber Kunde,


Haben Sie in letzter Zeit Percepio.com besucht? Percepio hat seine Webseite komplett neu gestaltet und aktualisiert.

Neu und Online: Percepio.com
 
Die neue Website spiegelt die Entwicklung des Embedded-Marktes und auch die von Percepio selbst wider. Sie ist einfach zu benutzen und zu navigieren und vermittelt das Wertversprechen von Percepio. 

Percepio Tracealyzer visualisiert das Laufzeitverhalten und hilft Ihnen, schwer fassbare Probleme schnell zu lösen. Kunden haben ihre Debugging-Zeit um 80% reduziert und ihre Entwicklungsgeschwindigkeit verdoppelt. Überprüfen Sie das Software-Timing und optimieren Sie die Leistung. Entwickeln Sie schneller und liefern Sie Ihr Produkt mit Vertrauen.

Unabhängig davon, ob Sie Hunderte oder sogar Tausende von Geräten im Außendienst haben, hilft Ihnen Percepio DevAlert, Probleme in Sekundenschnelle zu lokalisieren, ohne Sie mit Warnungen zu überfordern.

Die kostenlosen Testversionen von Tracealyzer und DevAlert sind leicht zu finden. Bitte schauen Sie sich die Seite an – es lohnt sich.
 










Unterstützung für Cadence Tensilica Cores 
Der SEGGER J-Link ist einer der am meistgenutzten Debug Probes auf dem Markt. Seit mehr als 15 Jahren haben sich J-Links in der Embedded-Entwicklung bewährt. Dank ihrer unübertroffenen Leistung, eines großen Funktionsumfanges, einer Vielzahl von unterstützten CPUs sowie der Kompatibilität mit gängigen Entwicklungsumgebungen sind J-Links die beste Wahl.

SEGGER bietet ab sofort J-Link-Unterstützung für ausgewählte Modelle der Cadence Tensilica Processor IP, einem Portfolio von konfigurierbaren und erweiterbaren Controllern und DSPs.

Bei den Cadence Tensilica Cores, die seit der ersten Implementierungs-phase unterstützt werden, handelt es sich um die Tensilica Xtensa LX7 CPU, mehrere Tensilica HiFi DSPs (HiFi 4, HiFi 3z, HiFi 3 und HiFi 1) sowie die Tensilica Fusion F1 DSP.

Die neuesten Modelle der SEGGER J-Link Debug Probes (J-Link BASE, J-Link PLUS, J-Link ULTRA+ und J-Link PRO) unterstützen jetzt High-Speed-Download und Debugging dieser Cores über JTAG und SWD.

Das Bestreben, Rechenleistung weiter in die Netzwerkperipherie zu verlagern, bedeutet, dass immer mehr MCUs und SoCs die Tensilica-CPU und DSP-IP enthalten. Die neue SEGGER-Implementierung ermöglicht es, den J-Link GDB Server als nativen J-Link-Treiber für die Tensilica Xplorer Entwicklungsumgebung (Integrated Development Environment, IDE) zu verwenden, was zu einer deutlichen Leistungssteigerung führt. Dadurch können Kunden ihre Firmware, die auf Tensilica Cores läuft, schneller debuggen.

Der Support für die Cadence Tensilica Cores wurde bereits im J-Link-Softwarepaket integriert. Das Paket steht auf der SEGGER Website zum Download bereit.

Mehr Informationen zu SEGGER J-Link finden Sie hier.
 









Auf die Größe kommt es an
Viele Leute denken, dass in der heutigen Welt die Größe eines Programms keine Rolle mehr spielt. In vielen Fällen stimmt das nicht, insbesondere in der Welt der Embedded Computersysteme, was nachfolgend erklärt wird. 

Wer könnte über den Vergleich von Werkzeugketten und CPUs besser und 
kompetenter schreiben als Rolf Segger, Gründer von SEGGER Microcontroller.

Der vorgestellte Benchmark ermöglicht den leichten Vergleich der Code-Größen-Effizienz verschiedener Tool-Ketten (Compiler, Assembler, Linker, Laufzeitbibliothek) auch über verschiedene CPUs und Architekturen hinweg.

Warum ist Größe wichtig?
 
In Embedded Systemen müssen die Programme in einen bestimmten Flash- oder RAM-Speicher passen. Wenn sie nicht hineinpassen, kann das Programm entweder nicht verwendet werden oder erhält nicht die gewünschte Funktionalität, was manchmal bedeutet, dass neue Funktionen nicht mehr hinzugefügt werden können. In anderen Fällen sind größere Chips mit mehr Speicher verfügbar, allerdings zu einem höheren Preis.

Heutzutage haben viele Chips nur 64 KB Flash-Speicher oder das Programm muss aus einem RAM laufen, dessen Größe begrenzt ist. Ein weiterer Grund, warum Programme klein sein sollten, ist, dass in größeren Systemen mit Cache-Speicher der Cache-Speicher effizienter genutzt werden kann, wenn das Programm kleiner ist.

In einem kleineren Programm müssen die Cache-Zeilen viel seltener geleert werden, was zu einer höheren Ausführungsgeschwindigkeit führt. Auch Firmware-Aktualisierungen werden schneller abgeschlossen, insbesondere wenn sie über Verbindungen mit geringer Bandbreite übertragen werden. (Was auch ein Grund sein kann, Komprimierung zu verwenden...)

Benchmarketing-Geschwindigkeit
 
Es gibt eine Vielzahl von Benchmarks, die alle dasselbe zu tun scheinen: Leistung und Ausführungsgeschwindigkeit messen. Sie heißen Coremark, Drystone, ... Das ist sicherlich in vielen Fällen interessant, aber die Codegröße kann genauso wichtig oder manchmal sogar wichtiger sein

Fast jeder Compiler kann entweder für die Geschwindigkeit oder die Größe optimieren (manche auch für eine Mischung aus beidem, gewöhnlich "ausgewogen" genannt).

Es ist einfach, ein Programm (bis zu einem gewissen Grad) schneller zu machen, indem man Schleifen aufrollt und Inlining verwendet. Um einen fairen Vergleich anzustellen, sollte man also immer auch die Größe des erzeugten Programms betrachten.
 









Benchmark-Größe - emBench-IoT
Bei diesem Benchmark wollte SEGGER sicherstellen, dass der Benchmark typisch für ein Embedded System ist und zu 100 % portabel ist. Daher sind Komponenten, die typischerweise in Embedded Systemen verwendet werden, im Benchmark enthalten.

Teile von diesen SEGGER Tools werden verwendet:
Diese Komponenten werden so verwendet, dass die Toolkette keine Chance hat, irgendetwas weg zu optimieren.
 Die emWin-Komponente zeichnet in den Frame-Buffer (ein flüchtiger RAM-Bereich), die anderen Komponenten führen einen ziemlich komplizierten Selbsttest durch, der am Ende ein Ergebnis liefert, das dann im Hauptprogramm verwendet wird.

Segger verwendet diesen Test intern schon seit einiger Zeit, um den SEGGER Linker, den SEGGER Compiler und die SEGGER Run-time Library gegen sich selbst (verschiedene Versionen) sowie ARM vs. RISC-V zu vergleichen.
 Dadurch kann der Fortschritt all dieser Komponenten überwacht werden.
 Dies ermöglicht auch, die Vorteile der Verwendung von LTO (Link Time Optimizations) zu erkennen.

Es zeigen ein paar Dinge...
  • ARM Thumb-2 hat eine höhere Codedichte als RISC-V (RV32IMAC benötigt zwischen 16% und 20% mehr Programmspeicher)

  • LTO kann die Programmgröße erheblich reduzieren (hier zwischen 8 und 15%)
Die Ergebnisse stimmen mit denen überein, die bei anderen, realen Anwendungen gefunden wurden.

Segger hat auch andere Toolketten einem Benchmarking unterzogen. Es wurden bei aller Fairness im Vergleich Optionen ausgewählt, die zu einer möglichst geringen Programmgröße führen sollten, wie z.B. Optimierung der Größe, kleine Laufzeitbibliothek, wo verfügbar, Multi-File-Kompilierung, usw. 

Der nächste Konkurrent erreichte 87.026 Bytes (auch auf ARM Thumb-2), was immer noch 4,8% größer ist als die Größe des von Embedded Studio erstellten Programms. 
 










Code Dichte von SEGGER Embedded Studio
 
Wir waren nicht überrascht, dass SEGGER Embedded Studio kleinere Programme erzeugt als Anwendungen, die mit freien Toolchains erstellt wurden.


Was tatsächlich etwas überraschend war, ist, dass Embedded Studio kleinere Programme generiert als alle kommerziellen Toolchains, die im Vergleich herangezogen wurden.

Wenn die Codedichte für Sie wichtig ist, sollten Sie Embedded Studio herunterladen und Ihre Anwendung damit erstellen. Embedded Studio bietet die volle Funktionalität für nicht-kommerzielle als auch kommerzielle Nutzung und kostenlose Evaluierung.

Es sollte nicht schwer sein, ein Projekt zu erstellen und Ihre Anwendung zu testen.
 Wenn Sie eine Anwendung haben, die mit einer anderen Werkzeugkette kleiner ist, würden wir uns freuen, wenn Sie uns dies mitteilen.
 Und wenn Sie bestätigen können, dass sie kleiner ist, würden wir dies auch gerne von Ihnen wissen.
 










Verfügbarkeit von emBench-IoT
 
SEGGER lizensiert emBench-IoT an ausgewählte Kunden.
 Es kann in vielerlei Hinsicht nützlich sein, um die Codedichte einer Architektur, einer Laufzeitbibliothek oder eines Compilers oder der gesamten Kombination zu vergleichen.

emBench-IoT kann natürlich auch verwendet werden, um zu sehen, wie nützlich eine bestimmte Optimierung einer CPU in Bezug auf die Größe sein kann (durch Hinzufügen spezieller Anweisungen). Dies ist natürlich etwas komplizierter, da es einen Compiler erfordert, der diese Befehle nutzt.

Wenn Sie an emBench-IoT interessiert sind, kontaktieren Sie SEGGER: info@segger.com.
 



Der wärmste Oktober seit Wetteraufzeichnung - was kann da noch alles auf uns zukommen? Der Winter wird nicht ausbleiben, wenngleich es meine Hoffnung wäre (als Nicht-SkiFahrer). Wir werden sehen.

Herzlichst,  Ihr
Marian A. Wosnitza



„Kühner als das Unbekannte zu erforschen kann es sein,
das Bekannte zu bezweifeln.“
(Alexander von Humboldt, deutscher Naturforscher)