2min

Tags in dit artikel

, , ,

Google heeft Pigweed open-source gemaakt, wat een verzameling van microcontrollermodules is die zijn ontworpen voor van 32-bit-apparaten. Pigweed moet de ontwikkeling van hardware in een aantal branches versnellen, van smart home-apparaten, industriële productie, robotica, automotive en telecommunicatie.

De modules zijn bedoeld om een snellere en betrouwbaardere ontwikkeling van microcontrollers mogelijk te maken. Microcontrollers zijn de kleine computers in single circuit chips. In een blogpost liet Google weten dat Pigweed een verzameling van microcontroller-libraries is.

Pigweed komt met tools die via een virtuele omgeving een vereenvoudigde setup mogelijk maken. Het bootstrap-script in de Pigweed pw_env_setup module geeft de huidige shell toegang tot een gestandaardiseerde set van hulpprogramma’s. Het gaat onder andere om Python 3.8, clang-format, en een ARM-compiler. Dit moet allemaal werken zonder de standaardomgeving van het systeem aan te passen.

Features

Pigweed ondersteunt gedistribueerd testen, evenals vooraf geconfigureerde code formatting en geïntegreerde pre-submit controles. Vanuit de code-editor biedt de pw_watch module een watcher die automatisch een build oproept wanneer een bestand wordt opgeslagen. Ook voert die watcher de relevante tests uit bij codewijzigingen, om de edit-compile-flash-testcyclus voor wijzigingen te verkleinen. Zo kan pw_watch bijvoorbeeld bestandswijzigingen detecteren voordat de betreffende bibliotheken en binaries worden gebouwd, en voordat de tests naar het doelapparaat worden geflasht en er specifieke unit-tests worden uitgevoerd.

De pw_target_runner-module van Pigweed voert parallelle tests uit op meerdere apparaten. De pw_pressubmit module biedt een kant-en-klare geïntegreerde suite van linters (dit zijn tools die de broncode analyseren om fouten en bugs te herkennen). Dit op basis van tools die vooraf zijn geconfigureerd voor gebruik door microcontroller-ontwikkelaars. Pw_tokenizer is een module die strings naar binary tokens converteert tijdens het compileren, waardoor loggen met minder overhead in flash, RAM en CPU-gebruik mogelijk wordt. Dan is er nog pw_bloat, waardoor geheugenrapporten gegenereerd worden voor output binaries, om ontwikkelaars informatie te geven over de gevolgen van wijzigingen voor het geheugen.

De Pigweed-broncode is beschikbaar onder een Apache 2.0 licentie.