TranslateProject/published/202207/20220707 Google Summer of Code + Zephyr RTOS.md
2022-08-01 16:23:45 +08:00

141 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "Google Summer of Code + Zephyr RTOS"
[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/"
[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14818-1.html"
谷歌编程之夏与 Zephyr RTOS 项目介绍
======
**谷歌编程之夏**GSoC是一个谷歌举办的国际年度项目每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于每年 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。
今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 [津贴][4] 的金额取决于他们所在国家/地区的 [购买力平价][5]。
**LCTT 译注:以往,这个活动只允许在校学生参与,今年条件放开,只需年龄 18+ 即可,对参与者的贡献时长要求也降低了,尽可能地让更多人参与进来。不过,今年的报名通道在 4 月 19 日就截止了,大家有兴趣的话明年可以关注一下。**
这也是 Zephyr 项目第一次作为 Linux 基金会的项目,参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧!
### 项目一:基于 Zephyr 的 Arduino 模块
1 个贡献者350 小时)。
[Arduino][6] 是一个流行的框架它为嵌入式设备编程提供了一个简化的接口。最近Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作他们将 [Arduino Core][7] 作为独立的抽象层,从 [Arduino Core for mbed][8] 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。
该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块,以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时,可以使用 Zephyr 作为底层操作系统。对用户的好处包括:
* 可以访问 Arduino API 以及高级 Zephyr 功能
* 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备
* 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库
Arduino Core 使用 LGPL 许可证Zephyr 使用 Apache 2 许可证。这意味着该项目的开发很可能需要脱离主分支,并在单独的仓库中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。
**贡献者的任务是:**
* 实现一个基于 Arduino Core 的准系统模块,可以为任何目标编译(不具备功能性,可能在 QEMU 中)
* 基于 Zephyr使用 Arduino API 实现一个通用外围设备,例如 [Serial][11]
* 以一个物理板为目标,例如 Arduino Zero
**导师:**
[Jonathan Beri][12] Golioth 和 Zephyr TSC 的首席执行官
[Alvaro Viebrantz][13] Golioth 和 Google GDE 的创始工程师
**代码许可证:** LGPL
**贡献者详细信息:**
* 姓名Dhruva Gole
* 项目博客:[https://dhruvag2000.github.io/Blog-GSoC22/][14]
* 项目海报:
![][15]
**关于贡献者:**
![][16]
Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入式软件开发到硬件设计,在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。
### 项目二Zephyr 的 Apache Thrift 模块
一个贡献者350 小时)。
[Apache Thrift][17] 是一个 [IDL][18] 规范、[RPC][19] 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 [2007 年在 Facebook 开发][20],随后与 Apache 软件基金会共享。
![][21]
![][22]
在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输,因此,它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 [Thrift for Zephyr 模块][23] 形成以供上游使用。为此,贡献者必须:
* 对 Thrift 功能(协议、传输)执行额外的集成
* 使用 [supported board][24] 或 [Qemu][25] 编写其他示例应用程序
* 使用 [Zephyr 测试框架][26] 编写其他测试并生成覆盖率报告
* 确保模块遵循适当的 [编码指南][27] 并满足 [模块要求][28]
* 将任何必要的改进贡献回 Apache Thrift 项目
* 将任何必要的改进贡献回 Zephyr 项目
**导师:**
* [Christopher Friedt][29] Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员
* [Stephanos Ioannidis][30] Zephyr CXX 子系统维护者
**代码许可证:** Apache 2.0
**贡献者详细信息:**
* 姓名Young
**关于贡献者:** Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。
本文 [Google Summer of Code + Zephyr RTOS][31] 首发于 [Linux 基金会][32]。
--------------------------------------------------------------------------------
via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/
作者:[The Linux Foundation][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/
[b]: https://github.com/lkxed
[1]: https://en.wikipedia.org/wiki/Google
[2]: https://en.wikipedia.org/wiki/Stipend
[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software
[4]: https://en.wikipedia.org/wiki/Stipend
[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity
[6]: https://www.arduino.cc/
[7]: https://github.com/arduino/ArduinoCore-API
[8]: https://github.com/arduino/ArduinoCore-mbed
[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247
[10]: https://github.com/soburi/arduino-on-zephyr
[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/
[12]: https://www.linkedin.com/in/jonathanberi/
[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/
[14]: https://dhruvag2000.github.io/Blog-GSoC22/
[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png
[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg
[17]: https://github.com/apache/thrift
[18]: https://en.wikipedia.org/wiki/Interface_description_language
[19]: https://en.wikipedia.org/wiki/Remote_procedure_call
[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf
[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png
[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png
[23]: https://github.com/cfriedt/thrift-for-zephyr
[24]: https://docs.zephyrproject.org/latest/boards/index.html
[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html
[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html
[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html
[28]: https://docs.zephyrproject.org/latest/guides/modules.html
[29]: https://www.linkedin.com/in/christopher-friedt/
[30]: https://www.linkedin.com/in/stephanosio/
[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/
[32]: https://www.linuxfoundation.org/