Embedded-Entwicklung: Google Pigweed soll das Codewachstum beschleunigen

Eine Sammlung von Open-Source-Libraries zielt auf eine effizientere Entwicklung für 32-bit Mikrocontroller.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Embedded-Entwicklung: Google Pigweed soll das Codewachstum beschleunigen

(Bild: Otto Wilhelm Thomé; Flora von Deutschland Österreich und der Schweiz; 1885 (Public Domain))

Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Google hat unter dem Namen Pigweed ein Open-Source-Projekt veröffentlicht, das Embedded-Entwicklern helfen soll, effizienter Code für 32-bit Mikrocontroller zu schreiben. Pigweed ist eine Sammlung von Libraries, die Google als Module bezeichnet und die unter anderem den Build- und Testprozess beim Speichern von Code automatisieren oder Lint-Werkzeuge integrieren.

Das Modul pw_env_setup module unterstützt Entwickler beim Einrichten der Umgebung. Das Skript bootstrap.sh unter Linux oder macOS beziehungsweise bootstrap.bat unter Windows initialisiert die virtuelle Umgebung von Pigweed und gibt Entwicklern in der Shell Zugriff auf eine Reihe von Standardwerkzeugen wie Python 3.8, clang-format und einen ARM-Compiler.

Das Modul pw_watch hilft beim Testen von Änderungen direkt auf dem Device. Passend zum Namen beobachtet es die Projektdateien und führt beim Speichern automatisch einen Build-Prozess, das Flashen und anschließend spezifische Unit-Tests für die geänderten Codebereiche durch. Um parallele Tests auf mehreren Devices durchzuführen, existiert das zusätzliche Modul pw_target_runner.

pw_watch stößt beim Speichern von Dateien den Build-, Flash- und Testprozess an.

(Bild: Google)

Für sauberen Code soll das Modul pw_presubmit sorgen, und auch hier ist der Name Programm: Es führt vor dem Bereitstellen des Codes Überprüfungen durch. Die Library formatiert den Code nach Projektvorgaben und hat unter anderem eine Reihe von Lint-Tools an Bord, die zur Entwicklung für Mikrocontroller vorkonfiguriert sind.

Darüber hinaus bietet Pigweed zahlreiche weitere Module wie pw_bloat für Reports über die Auswirkung von Änderungen auf den Speicherbedarf, pw_string als effiziente Alternative zu den C-Funktionen zum Bearbeiten von Zeichenketten oder pw_tokenizer zum Umwandeln von Strings in binäre Tokens beim Kompilieren.

Mit pw_protobuf existiert zudem eine Implementierung von Protocol Buffers, die derzeit noch Preview-Status hat. Das Pigweed-Team will mit der Zeit weitere Module hinzufügen und die vorhandenen ausbauen.

Nachdem Google Ende Januar den Namen "Pigweed" als Markenzeichen angemeldet hatte, vermuteten einige Beobachter wie 9to5google zunächst, dass es sich um ein weiteres Betriebssystem neben Fuchsia handeln würde. Die Vermutung war durchaus naheliegend, da in der Trademark-Erklärung als Klasse "Computer Operating Software" zu finden ist.

Der Name Pigweed dürfte den Verdacht zusätzlich befeuert haben, da er ebenfalls für eine Pflanze steht, die im Deutschen Amarant oder Fuchsschwanz heißt, fleißig als Unkraut wächst und in einigen Ländern gegessen wird. Das schnelle Wachstum motivierte das Pigweed-Team wohl auch zur Namensgebung. So heißt es im Blogbeitrag zur Freigabe des Projekts, dass Teams zunächst ein Modul nutzen würden und schnell weitere Module verwenden, nachdem sie feststellen, dass das erste gut funktioniert.

Die Bootstrap-Skripte helfen beim Einrichten der Umgebung für Entwickler.

(Bild: Google)

Pigweed steht unter Apache 2.0-Lizenz, und der Quellcode ist auf Googlesource verfügbar. Derzeit befindet sich das Projekt in der frühen Entwicklungsphase und ist laut dem Blogbeitrag nicht reif für den produktiven Einsatz. (rme)