写点什么

谷歌开源面向设备开发人员的微控制器模块集 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:001322
用户头像
刘燕 InfoQ高级技术编辑

发布了 1123 篇内容, 共 604.3 次阅读, 收获喜欢 1982 次。

关注

评论

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

保姆级离线 TiDB V8+ 解释

TiDB 社区干货传送门

8.x 实践

用HAI+AI助手,不懂代码也能自己做页游

穿过生命散发芬芳

HAI应用服务器 腾讯云 AI 代码助手

【2月13日 - 3月14日】TiCDC 新架构试用通道正式开启,全新升级,抢先体验,多重参与奖励等你拿!

TiDB 社区干货传送门

用 tcpdump 分析 Java 客户端的 prepare 行为

TiDB 社区干货传送门

性能调优 故障排查/诊断

Karmada v1.13 版本发布!新增应用优先级调度能力

华为云原生团队

云计算 容器 云原生

Netty源码—Reactor线程模型一

不在线第一只蜗牛

Java 算法 前端

TiCDC 新架构 v9.0.0 使用实践

TiDB 社区干货传送门

TiCDC新架构

龙蜥 2024 年度“最佳合作伙伴”揭晓!申威、AMD 等多家新晋贡献厂商实力登榜

OpenAnolis小助手

操作系统 龙蜥社区 OpenAnolis 龙蜥社区年度优秀贡献者

CST软件如何用天线远场计算Group delay延时

思茂信息

cst CST软件 CST Studio Suite

龙蜥社区第六届理事大会成功举行,共话技术创新与生态合作

OpenAnolis小助手

开源 龙蜥社区 OpenAnolis 龙蜥社区理事大会

【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(数据持久化的实现AOF)

码界西柚

数据库 redis redis持久化 aof Redis底层原理

人形机器人发展路线之争:“大脑”优先,还是“运动”优先?

机器人头条

科技 大模型 人形机器人 具身智能

用户说 | 零基础用通义灵码 AI 程序员开发个人笔记网站

阿里巴巴云原生

阿里云 云原生 通义灵码

“官方网站+公开课程”双赋能,鸿蒙游戏开发者服务焕新升级

最新动态

《汽车电机MES系统实战指南:打造柔性化智能产线的4大核心模块与3项关键技术突破》​

万界星空科技

mes 制造业工厂 电机MES 汽车电机 汽车电机mes

重塑家庭观影标准,海信激光电视探索X1斩获艾普兰奖

新消费日报

重识 APO:DeepSeek 掀起可观性领域变革 | 龙蜥生态

OpenAnolis小助手

AI 系统运维 apo 龙蜥生态 DeepSeek

DeepSeek&东信营赛洞见:“深度思考”模式重构AI营销新范式

东信营销科技

连接与效率的艺术:解码ToB 移动端协同产品的用户体验设计奥秘

inBuilder低代码平台

UX 移动端 体验设计

高性能网络SIG双月动态:加速 SMC eBPF 透明替换特性上游化进程,并与上游深度研讨新特性

OpenAnolis小助手

操作系统 龙蜥社区 smc 龙蜥SIG月报

荣耀时刻!第二届开放原子大赛-OS Copilot 学习赛获奖名单新鲜出炉

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥赛事

解析稳定率达99.99%!合合信息“大模型加速器2.0”助力AI打破“幻觉”

合合技术团队

人工智能 #算法 #大数据 图表解析

如何选择合适的日志管理系统?功能对比与应用场景解析

运维有小邓

日志管理系统

SysOM 可观测体系建设(一):万字长文解读低开销、高精度性能剖析工具livetrace

OpenAnolis小助手

AI 可观测性 SysOM 龙蜥系统运维联盟 livetrace

下一代产品的“双向奔赴”  鸿蒙版百度网盘发布多项领先AI能力

极客天地

TiDB × AI :DeepSeek 时代你需要什么样的数据基座

PingCAP

AI TiDB DeepSeek

面试官:谈谈你对Reactor模型的理解?

王磊

【宣法·3.15特辑】电子签怎么跟套路贷混为一谈了?

易成研发中心

电子签名

高性能存储SIG月度动态:erofs快照器合入containerd社区,ANCK支持virtio-blk直通

OpenAnolis小助手

操作系统 高性能存储 龙蜥社区 龙蜥社区SIG EROFS

分布式事务的模式

陈一之

架构 分布式 分布式事务 事务

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