Google推出Pigweed SDK,支持在Pi Picos及其他微控制器上进行嵌入式开发

Google 推出 Pigweed SDK,简化嵌入式 C++ 应用开发

Google 最近发布了 Pigweed SDK 的开发者预览版,旨在简化嵌入式 C++ 应用的开发、调试、测试和部署。该 SDK 的核心是 Google 的构建系统 Bazel,经过扩展后更好地支持嵌入式开发的典型工作流程和需求。

Pigweed SDK 的核心特性

Pigweed SDK 基于 Google 几年前推出的 Pigweed 嵌入式编程库集合,并通过一系列工具生态系统进行了增强。该生态系统包括 Clang/LLVM 工具链、交互式 REPL、IDE 集成等。Pigweed 的现代模块化方法显著减少了调试和维护的开销,非常适合中大型产品团队。

Pigweed 的应用场景

Pigweed 已被广泛应用于 Google Pixel、Nest 恒温器、DeepMind 机器人以及卫星和自主无人机等设备中。Pigweed 由许多独立的模块组成,开发者可以单独采用这些模块。例如,pw_presubmit 提供了一套预配置的代码检查工具,pw_target_runner 支持在多个设备上并行运行测试,pw_watch 则是一个自动创建镜像、刷入设备并验证代码更改的监视器。

SDK 的主要功能

Pigweed SDK 帮助嵌入式开发者处理复杂的工作流程,如密封构建、刷入和测试;围绕硬件无关的 C++ 构建代码库;通过 RPC 与嵌入式硬件通信;以及在主机上模拟 Pico 设备。SDK 支持跨平台构建,当前支持 macOS 和 Linux,Windows 支持即将推出。

Sense 展示项目

SDK 的一个重要贡献是 Sense 展示项目,这是一个中等规模的项目,展示了多个 Pigweed 组件如何协同工作。Sense 是一个简化的空气质量监测器,涵盖了传感器、按钮输入、RGB LED 输出、状态机管理等实际流程。该项目还附带了一个教程,提供了代码库的详细操作指南。

IDE 集成

SDK 还包括与 Visual Studio Code 的集成,提供了 C++ 和 Starlark 代码智能支持,以及开箱即用的 Bazel 命令支持。这使得 Visual Studio Code 能够提供代码导航、代码补全、工具提示、错误和警告、代码格式化等功能,简化了 Pigweed 模块的使用。

GitHub Actions 支持

SDK 还支持 GitHub Actions,展示了如何在提交 PR 时运行预提交操作,以及在 PR 合并后运行提交后操作。这些操作包括检出代码、安装 Bazel、构建和测试项目,并可选择性地进行代码检查。

Raspberry Pi 支持

Raspberry Pi 已与 Google 合作近一年,为他们的 Pico 1 和 2 设备添加对 Pigweed SDK 的支持。Google 认为 Bazel 是 Pigweed 项目的重要组成部分,并相信它将成为嵌入式软件开发的未来,使大型专业嵌入式开发团队能够更轻松地在 RP2350 上构建原型和产品。

目标与未来展望

Google 表示,Pigweed SDK 旨在成为开发 Pico 系列设备的最佳方式,这些设备目前已广泛可用。通过这种方法,开发者可以快速轻松地开始原型设计,并在后期阶段将 Pigweed SDK 应用于自定义硬件,而无需进行重大重写。

阅读 31
0 条评论