写点什么

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

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

关注

评论

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

《社区人员管理》实战案例设计&个人案例分享

京东科技开发者

架构 测试 编码 在线设计平台 企业号 4 月 PK 榜

ChatGPT,音乐,与数据库

沃趣科技

数据库 云原生 音乐 ChatGPT

全网已经疯传90多万次的java修炼指南!已帮我拿下11个大厂offer

通过小程序容器技术让App实现灰度发布

没有用户名丶

Typescript-类型检测和变量的定义

格斗家不爱在外太空沉思

typescript 三周年连更

CentOS7 离线安装 Zabbix5.0

A-刘晨阳

Linux zabbix 三周年连更 离线安装

《设计模式之禅》Proxy_Pattern--代理模式

浅辄

设计模式 代理模式 三周年连更

MySQL8.0 优化器介绍(三)

GreatSQL

MySQL greatsql greatsql社区

企业微信接入系列-自建应用

六月的雨在InfoQ

企业微信 应用配置 三周年连更 自建应用

一篇神文就把java多线程,锁,JMM,JUC和高并发设计模式讲明白了

Java 多线程 高并发

漫谈前端自动化测试演进之路及测试工具分析

京东科技开发者

前端 自动化测试 前端测试 企业号 4 月 PK 榜

Spring @Import注解的使用和源码分析

Java你猿哥

Java spring import SSM框架

Springboot如何手动连接库并获取指定表结构|超级详细,建议收藏

bug菌

springboot 三周年连更

Java枚举和注解

timerring

Java 三周年连更

Intents ,快速完成任务的最强辅助

鼎道智联

AI

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

汀丶人工智能

人工智能 自然语言处理 深度学习 ChatGPT

SAP Emarsys 的前后台技术栈

汪子熙

SaaS Cloud SAP 思爱普 三周年连更

跨平台图像浏览器:XnViewMP 中文激活版

真大的脸盆

Mac Mac 软件 图像查看 图像浏览

“分割一切”大模型SAM、超轻量PP-MobileSeg、工业质检工具、全景分割方案,PaddleSeg全新版本等你来体验!

飞桨PaddlePaddle

计算机视觉 飞桨 图像分割

极光笔记 | 让运营“从心”出发,打造身临其境的客户体验!

极光GPTBots-极光推送

运营 消息推送 极光推送

缓存与数据库双写一致性几种策略分析

京东科技开发者

数据库 缓存 高并发 数据一致性 企业号 4 月 PK 榜

基于 Flink CDC 的现代数据栈实践

Apache Flink

大数据 flink 实时计算

如何在业务开发中使用适配器模式?

MobPush Android SDK厂商通道申请指南

MobTech袤博科技

再聊 MySQL 聚簇索引

江南一点雨

Java MySQL

软件架构生态化-多角色交付的探索实践

京东科技开发者

架构 架构师 交付能力 企业号 4 月 PK 榜

Flink CDC 在易车的应用实践

Apache Flink

大数据 flink 实时计算

Karmada v1.5发布:多调度组助力成本优化

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

实习生疑问:为什么要在需要排序的字段上加索引呢?

架构精进之路

MySQL 数据库 索引 三周年连更

leetcode-2335. 装满杯子需要的最短总时长

肥晨

三周年征文

MySQL到ClickHouse数据同步产品对比推荐

NineData

MySQL Clickhouse dba bifrost NineData

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