Embedded-Entwicklung: Google Pigweed soll das Codewachstum beschleunigen
Eine Sammlung von Open-Source-Libraries zielt auf eine effizientere Entwicklung für 32-bit Mikrocontroller.
- Rainald Menge-Sonnentag
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.
Nahtlose Builds und Tests
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
.
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.
Weitere Libraries
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.
Doch kein neues Betriebssystem
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.
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)