当前位置: 首页 > 科技赋能

自由湾!为什么选择Zephyr来开发可穿戴设备?

时间:2024-05-22 18:58:09 科技赋能

经过一轮蓬勃发展,可穿戴市场吸引了众多创业者的关注。

有人说,这是一片红海。

创业者为何要再试一次?事实上,最好根据市场热点推出新产品。

趁着市场机会,小米雷军不是说,站在风口的猪都能飞起来吗?今天我们邀请了一家叫BayLibre的公司来展示他们的经验,看看他们是如何设计可穿戴设备的?而如何为可穿戴设备选择合适的操作系统呢? BayLibre是一家来自法国的嵌入式设备公司。

当他们开始设计和开发新的可穿戴产品时,他们首先考虑操作系统的选择。

选择 Zephyr、NuttX 还是设计自己的操作系统?前者胜出产品框架图。

从这张产品框架图可以看出,BayLibre的设备包含一个ARM Cortex-A SoC,通过SPI总线与Cortex-M4 STM32L4xx连接。

它通过 I2C 连接到其他更轻量级的 Cortex-M 内核。

他们需要一个免费的、经过认证的 RTOS,还需要 UART、I2C 主设备和 SPI 从设备的驱动程序。

同时还需要调度器、定时器、任务、线程、锁等功能。

经过筛选和比较,BayLibre的Parent和Armstrong很快锁定了三个选择:推出自己的操作系统,使用Apache 2.0许可的Zephyr,或者拥有3个BSD许可的NuttX。

大多数企业家对创新感兴趣,许多人选择设计自己的操作系统。

优点是可以根据自己的产品进行定制,设计完成后团队有成就感。

但别忘了,自己开发一个操作系统不仅需要很长的时间,而且还需要巨大的人力、物力成本。

实时维护也很困难,没有足够的时间修复缺陷和改进系统。

权衡利弊后,放弃方案一。

再看NuttX,它因运行在Pixhawk无人机控制器上而闻名,而Parent曾在谷歌放弃的Ara项目上工作过两年,熟悉NuttX的操作。

缺点是它的构建系统完全不可靠,Parent 解释道,“在 Ara 项目中,每当我们更改配置时,我们都无法确定 NuttX 是否能正常工作。

此外,NuttX 基本上完全是由一个人编写的,因此没有同行评审“虽然 NuttX 拥有 BSD 许可证,但其存储库中有很多代码需要新许可证,例如 GPL,因此您有可能不小心采用该代码,后果将是当他们发现的时候就太可怕了。

”Zephyr 的眼睛亮了起来。

Zephyr具有模块化、可扩展性、开源等优点。

其内核可以运行在内存为8KB到KB的设备上,并且可以为特殊设备启用或禁用任意数量的功能。

目前支持ARM-Cortex-Mx、Intel X86、ARC、Synaptics Nios 2和RISC-V等架构、57种主板类型,为设计者提供了最大可能的选择范围。

此外,它的编码风格、构建系统和维护者概念与 Linux 非常相似。

Zephyr有详细的文档,并在开源社区的支持下不断改进。

在比较了三种解决方案的优缺点后,Parent和Armstrong毫不犹豫地选择了Zephyr操作系统。

如何移植和上游新平台? Zephyr 在项目启动前几周发布,当时它不支持 STM32L4xx SoC,仅支持较旧的 STM32F1xx 型号。

但他们很快发现这是一个非常容易处理的挑战,并不像他们想象的那么复杂。

事实证明,所有 SoC 都非常相似,因此更新端口只花了一天半的时间,测试在一周内完成。

在开发产品的过程中,上游本身也有自己的挑战,而Zephyr自去年推出以来更新速度很快,目前已经更新到1.8版本。

当 Parent 和 Armstrong 进行第一次 rebase 时,没有任何效果,因此他们不得不重写电源管理代码三遍,他们的结论是:“一旦你有了干净的代码,你应该尽快尝试将其上游化。

否则,你就花了数小时重新调整一切。

”当他们进行初始设计时,Zephyr 仍然使用 Gerrit 进行补丁审查,并使用 JIRA 进行功能请求,此外还有一个邮件列表,Parent 解释说:“Gerrit 使您不太可能忘记补丁,但速度确实很慢。

且复杂。

最大的问题之一是你必须单独选择审稿人,而不是广播他们。

没有补丁系列的概念,因此您必须向补丁系列添加主题,这使得发送补丁更加复杂。

它的档案搜索很糟糕,而且很难看到补丁的全貌。

JIRA 对管理员友好,映射也很容易;但它对开发者不友好。

友好,关于如何使用它的好信息并不多,它是另一种与邮件列表和 Gerrit 重叠的通信媒介。

“为了解决设计中的这些问题,Zephyr将所有代码迁移到了GitHub。

开源社区的开发人员可以使用GitHub更轻松地改进Zephyr,分支和复制GitHub Repo,并通过pull requests提交更改,例如Armstrong 总结了他第一次使用 Zephyr 设计产品的经验,他说:“Zephyr 非常棒。

针对小型 CPU 上的低内存或低性能配置的良好设计,也是为可穿戴产品优化的少数开源 RTOS 之一。

与Linux非常相似,API易于理解,有清晰的文档,并且有活跃的开源社区,缺陷可以快速修复。

“Amstrong 强调”它的编码风格、构建系统和维护者概念都与 Linux 非常相似。

Zephyr 还拥有丰富的文档,并且正在迅速发展成为一个强大的社区。

Zephyr 支持低内存使用、高度可配置和模块化。

它提供现代、协作、抢占式线程功能,并最终添加安全预身份验证。

” 当然他也指出了遇到的一些问题——“Zephyr 的代码还很年轻,API 变化很快,因此开发人员需要针对每个版本测试代码,以确定它们是否仍然可以正常运行。

一些功能的规划和审核也需要明确和完善。

”Zephyr操作系统也根据用户需求不断更新,自去年2月上线以来,已推出8个版本,代码将迁移到GitHub未来将通过开源社区和研究人员的贡献更加完整。