Give Pigweed a whirl: A take on modern C++ firmware design.
Pigweed is a foundation layer for large-scale consumer electronics firmware. It's also a collection of C++ libraries, which can be used independently (a la carte) depending on your particular problems. Why would I care about Pigweed?
- If you've ever debugged an issue in a factory far from home; because we have mechanism to reduced errors in the factory (solution: pw_rpc + hdlc)
- If you've ever had bugs in your firmware that maybe could have been caught earlier (by automated testing)
- If you've ever had problems getting your compiler setup (solution: pw_env_setup, like docker but without docker)
- If you've ever had problems getting your team of firmware developers to write consistent code (solution: pw_presubmit integrated style checks)
- If you've ever wondered why the firmware software ecosystem so "different" from modern desktop software ecosystem
- If you've ever wanted to have comprehensive unit tests for your firmware, that run on your desktop and microcontroller (solution: pw_unit_test)
- If you've ever wanted to automate device control, for regression or certification testing (solution: RPC)
- If you've ever wanted to shrink the size of your binary since it was too full of logging (solution: tokenized logging & asserts)
- If you've ever cursed at a mysteriously unreliable UART that drops bytes, but only sometimes, when you're not looking (solution: HDLC over UART) What will we go through at this workshop?
The workshop will be split into 2 parts
(1) Intro to Pigweed and a brief tour through a few components - 30-45 minutes. Likely topics: logging, assert, tokenizing, metrics, tracing, rpc.
(2) Building a simple app with Pigweed - either on your host computer, or (hardware permitting) on an embedded device. Exact app TBD.
Instructor: Keir Mierle
Keir runs the Pigweed team at Google.