谷歌突然公布并开源Pigweed:可提升嵌入式开发效率

  谷歌于1月下旬曾向USPTO(美国专利及商标局)递交了名为“Pigweed”的新商标申请。根据申请内容来看,Pigweed商标涵盖“计算机操作软件”。当时,人们猜测这是一款新的操作系统商标,但并未有任何相关信息提供。

  昨日,谷歌毫无征兆地公布并开源了Pigweed。与之前的猜想不同,这是一个嵌入式库(或模块)的集合。使用Pigweed模块可以在32位微控制器(即嵌入单电路芯片中的小型计算机)上实现更快、更可靠的开发。

  Pigweed提供的模块可满足嵌入式开发人员的广泛需求。从整个生命周期来看,Pigweed从设置,到开发,再到代码提交,都能够有效提高嵌入式开发的效率。谷歌以上述开发过程为轴,围绕这几个方面分别介绍了Pigweed的一些模块。

  嵌入式空间中的经典挑战是减少从运行gitclone到在设备上执行二进制文件的时间。对于生产嵌入式项目,往往通常需要一整套工具。而Pigweed能够通过虚拟环境提供简化设置的工具,具体来说,Pigweed的pw_env_setup模块中的引导脚本可设置当前的shell以访问一组标准化工具——包括Python3.8、clang格式以及ARM编译器。所有这些都是在虚拟环境中完成的,因此无需修改系统的默认环境。

  在典型的嵌入式开发中,即使添加很小的更改也需要一些额外的手动步骤。而Pigweed的pw_watch模块直接解决了这种效率低下的问题,它提供了一个监视者(watcher),该监视者可以在保存文件时自动调用构建,还可以运行受代码更改影响的特定测试。这大大缩短了更改的编辑——编译——刷新——测试(edit-compile-flash-test)周期。

  这些测试都是自动完成的,用户无需离开自己的代码编辑器。此外,还可以使用pw_target_runner模块在多个设备上并行运行测试,从而节省更多时间。

  团队开发代码需要强调一致性,然而,设置lint、配置代码格式以及添加自动的提交前检查等通常会使这项工作无限期延迟。这时,Pigweed的pw_presubmit模块可派上用场。它会基于用户可能已经使用的工具提供现成的Lint集成套件,并预先配置好,可以立即供微控制器开发人员使用。

  至于该项目为什么取名为“Pigweed”,谷歌给出了解释:“Pigweed,又称amaranth,是一种营养丰富的谷物和绿叶沙拉菜,也是一种快速生长的杂草。”Pigweed项目团队希望名字有趣,又能反映项目本身的成长,就像快速生长的杂草Pigweed一样。

  目前,Pigweed已提供了不少模块,后续将会有更多模块被添加进来。需要注意的是,它仍处于早期开发阶段,目前不适合用于生产。