Die .net-Embeddedplattform Meadow F7 erfährt permanente Erweiterungen: die vor wenigen Tagen lancierte Version RC1 beschleunigt die Programmausführung durch einen JIT-Compiler, und bietet Entwicklern außerdem einige neue APIs.
Worum geht es hier?
Bryan Costanichs aus dem Netduino-Projekt hervorgegangene Arbeitsumgebung Meadow erlaubt Entwicklern die „Mobilisierung“ von in .net gehaltenem Code. MSR-Code kann so in Visual C#, Visual F# oder Visual Basic entstehen, das Erlernen von C ist nicht notwendig. Als Arbeitsplattform kommt dabei übrigens der in der Abbildung gezeigte kombinatorische Prozessrechner zum Einsatz, der einen STM32- und einen ESP32-Kern kombiniert.

(Bildquelle alle: Autor, teilweise via https://www.instagram.com/tam.hanna/)
Wie aktualisieren?
Zur Nutzung der neuen Version ist im ersten Schritt eine Aktualisierung des globalen Kommandozeilenwerkzeugs notwendig:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
Danach erfolgt das Anschließen des Meadow F7 im normalen Betriebsmodus – suchen Sie den Port im Gerätemanager, und befehlen sie danach nach folgendem Schema eine Aktualisierung der Firmware:
1 |
|
2 |
|
3 |
|
4 |
|
Bereitstellung eines Testprogramms
Da man in der Dokumentation des Updates eine Performancesteigerung um den Faktor fünf bis zehn verspricht, bietet sich ein kleiner Test mit Hardware an. Hierzu ist ein neues Projektskelett erforderlich – wichtig ist, im Header nach folgendem Schema die zur vorliegenden Hardware passende Basisklasse einzubinden:
1 |
|
2 |
|
3 |
|
4 |
|
Der Rest des Testprogramms ist dann eine nach Schema F erfolgende Ausgabe einer charakteristischen Wellenform:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
Vergleich der Performance
Zum Test bzw. zur Sichtbarmachung der Ergebnisse bietet sich ein Modulationsdomänenanalysator im Histogramm-Modus an. Vor dem Update bekam der Autor das folgende Ergebnis.

Nach dem Einspielen des Updates und einer Rekompilation veränderte sich die Situation nicht nennenswert.

Interessant ist, dass die Datei meadow.config.yaml den JIT-Compiler von Haus aus aktiviert:
1 |
|
2 |
|
Zu seiner Deaktivierung reicht es aus, den Inhalt nach folgendem Schema anzupassen und ein Redeployment zu befehlen:
1 |
|
2 |
|
Lohn der Mühen ist eine wesentliche Verlangsamung des Systems.

Angemerkt sei, dass man im Hause Costanitch unter https://github.com/WildernessLabs/Meadow_Performance_Benchmarks ein Benchmarkrepository pflegt. Die dortigen Programmbeispiele zeigen – teilweise – erhebliche Performancesprünge.
(Bildquelle: https://github.com/WildernessLabs/Meadow_Performance_Benchmarks)
Verbesserungen beim Startup
Während die durch JIT erreichbaren Leistungssteigerungen nicht immer beeindruckend ausfallen, beschleunigt Wilderness Labs auch den eigentlichen Startprozess durch Entfernung eines wohl durch „Grandfathering“ entstandenen zehnsekündigen Delays beim Hochfahren des Betriebssystems. Eine Optimierung des Eventmodells am WiFi-Coprozessor soll außerdem für eine wesentliche Beschleunigung des Verbindungsaufbaus sorgen:
1 |
|
Eine weitere Optimierung betrifft den Linker, der seine Arbeit nun im Rahmen der Kompilation erledigt – Lohn davon ist eine wesentlich schnellere Auslieferung von Code.
Mehr erfahren
Zu guter Letzt sei noch auf die URL http://developer.wildernesslabs.co/Meadow/Release_Notes/Release-Candidates/ verwiesen, unter der sich ein detaillierter Changelog der neuen Version befindet.




