9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

谷歌开源面向设备开发人员的微控制器模块集 Pigweed

  • 2020-03-27
  • 本文字数:1356 字

    阅读完需:约 4 分钟

谷歌开源面向设备开发人员的微控制器模块集Pigweed

近日,谷歌开源了 Pigweed,这是一个为使用 32 位设备的开发人员设计的一个微控制器模块集。其目的是使人们可以更快、更可靠的开发微控制器 — 即嵌入在单个电路芯片中的小型计算机。假设它能像宣传的那样,那么 Pigweed 可以在智能家居、制造业、机器人、汽车、甚至电信等一系列行业中加速硬件的发展。



图片来源:Khari Johnson / VentureBeat


1 月下旬,谷歌向美国专利商标局申请了 Pigweed 的商标,文件显示,该项目将涉及“计算机操作软件”。有些人将其理解为类似于谷歌Fuchsia的新操作系统,但在一篇博文中,谷歌明确表示,Pigweed 只是一个微控制器库的集合。


Pigweed 附带的工具通过虚拟环境提供了简化的设置。Pigweed pw_env_setup 模块中的引导脚本设置了当前的 shell,使其能够访问一组标准化的实用程序——包括 Python 3.8、clang-format 和 ARM 编译器——所有这些都不需要修改系统的默认环境。



Pigweed 支持分布式测试,以及预配置的代码格式化,并集成了预提交检查。在代码编辑器中,pw_watch 模块提供了一个监视程序,该程序在保存文件时会自动调用构建,并运行受代码更改影响的测试,缩短更改的编辑-编译-刷写-测试周期。例如,pw_watch 可以在构建受影响的库和二进制文件、将测试刷写到目标设备并运行特定的单元测试之前检测文件更改。


Pigweed 的pw_target_runner模块在多个设备上并行运行测试,而它的 pw_pressubmit 模块基于预先配置好的、供微控制器开发人员使用的工具,提供了现成的 linter 套件(用于分析源代码以标记错误和 bug 的工具)。Pw_tokenizer在编译时将字符串转换为二进制标记,从而使日志记录在闪存、RAM 和 CPU 使用方面的开销更少。Pw_bloat为输出二进制文件生成内存报告,从而向开发人员提供有关更改对内存影响的信息。



以下是在最初的 Pigweed 版本中包含的其他模块列表:


  • Pw_string:这个模块提供了 C++风格字符串操作的灵活性和安全性,但没有动态内存分配,对二进制大小的影响更小。

  • Pw_unit_test:一个建立在嵌入式友好的原语之上的模块,它不使用动态内存分配。它可以通过实现测试事件处理程序接口来用于移植到新的目标平台。

  • Pw_kvs:一种集成了损耗平衡的闪回持久化存储的键值存储实现;一个面向嵌入式设备文件系统的轻量级替代品。

  • Pw_cpu_exception_armv7m:ARM Cortex-M 的底层硬件故障处理程序;处理程序用汇编语言编写单元测试,以验证嵌套硬件故障处理。

  • Pw_protobuf:面向 wire 格式的协议缓冲区实现的早期预览。


到目前为止,Pigweed 源码是在 Apache 2.0 许可下提供的。谷歌警告说,它仍处于早期开发阶段,目前不建议用于生产。


那么,“Pigweed”这个名字的起源是什么呢?谷歌指出,这是一种营养丰富的谷物和绿叶沙拉,也是一种快速生长的杂草。在开发最终成为 Pigweed 的项目时,这家科技巨头想要找一个有趣、好玩且能反映 Pigweed 生长过程的名字。


谷歌写道:“团队一开始会使用一个吸引他们眼球的模块,如果一切顺利,他们很快就会开始使用更多的模块。我们正在继续改进并添加新的模块。我们希望嵌入式社区的其他人能够发现这些模块对他们的项目有帮助。”


本文最初发布于 VentureBeat 博客,经原作者授权由 InfoQ 中文站翻译并分享。


延伸阅读:


https://venturebeat.com/2020/03/19/google-open-sources-pigweed-microcontroller-modules-for-32-bit-devices/


2020-03-27 07:001245
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 583.3 次阅读, 收获喜欢 1981 次。

关注

评论

发布
暂无评论
发现更多内容

面试突击85:为什么事务@Transactional会失效?

Java快了!

物联网平台简介——产品功能类

阿里云AIoT

大数据 安全 物联网平台 物联网 IoT

总结了一些vue相关的题目,话说今年前端面试难度好大

bb_xiaxia1998

Vue 前端

【IT运维】如何有效保障服务器账号密码安全?

行云管家

运维 IT运维 行云管家 账号安全

VoneBaaS平台让区块链服务触手可得

旺链科技

区块链 产业区块链 VoneBaaS 企业号九月金秋榜

我的C/C++技术成长之路

Fire_Shield

程序人生 C/C++ 9月月更

Wiki在企业内部的应用和管理,如何构建有效的Wiki系统?

Baklib

MobTech 短信验证 Flutter插件

MobTech袤博科技

flutter ios android

EMQX Kubernetes Operator:快速体验EMQX 5.0云原生特性

EMQ映云科技

云原生 物联网 IoT emqx 9月月更

leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 从前序与中序遍历序列构造二叉树(中等)

okokabcd

LeetCode 算法与数据结构

物联网平台功能介绍——产品功能类

阿里云AIoT

大数据 物联网平台 物联网 IoT 设备管理

kubectl 插件推荐: kubectl-watch

云原生技术社区

k8s 插件 kubectl kubectl插件 kubectl-watch

一张图读懂「融云一站式全生态出海解决方案」

融云 RongCloud

白皮书 社交网络

IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信、打包、踩坑等)

JackJiang

即时通讯IM

经典再升级 | 尚硅谷电商数仓5.0视频教程发布

小谷哥

在西安参加Java培训学费多少钱?

小谷哥

UI设计培训需要学习哪些技术?

小谷哥

从0到1项目搭建-框架搭建(附源码)

微枫Micromaple

架构 springboot Druid Mybatis-Plus 9月月更

微信小程序开发|宿主环境详解

陈橘又青

9月月更

技术分享| 快对讲融合视频监控功能设计

anyRTC开发者

监控 音视频 调度 快对讲 GB28181

web前端培训班哪家比较好

小谷哥

前端面试5家公司,被经常问到的vue面试题

bb_xiaxia1998

Vue 前端

Docker 的快速入门

Docker 9月月更

开发者有话说|从心出发

胖虎不秃头

个人成长

Kyligence 入选 Gartner 指标中台创新洞察报告

Kyligence

指标管理 指标中台 数据分析管理

对于epoll实现原理的理解

C++后台开发

后台开发 linux开发 epoll select C++开发

【等保小知识】等级保护单项测评包括哪些项目?

行云管家

等保 等级保护 等级测评

多标签用户画像分析跑得快的关键在哪里?

跳楼梯企鹅

直播预告 | 乘云而上,企业海量数据如何「丝滑」地迁移上云?

京东科技开发者

云服务 数据迁移 资讯 京东云 企业云

从 OLAP 到指标中台 SaaS,关键指标赋能业务管理

Kyligence

OLAP Kyligence 数据管理 指标中台

上海UI设计培训哪家好

小谷哥

谷歌开源面向设备开发人员的微控制器模块集Pigweed_AI&大模型_KYLE WIGGERS_InfoQ精选文章