海口信息港

当前位置: 首页 >时尚

看ZephyrRTOS如何在消费电子产品

来源: 作者: 2019-05-15 02:45:44

作者:Matt Fleming

Baylibre是一家来自法国的嵌入式设备公司,与消费电子制造商进行合作,提供定制化固件解决方案,并专注于基于Linux的物联设备。我们在着手设计开发一款新的可穿戴产品时,首先考虑到选择怎样的操作系统的问题。我们终选择了Zephyr项目,并开发了多种嵌入式消费产品,包括Blocks模块智能手表和Ellie健康眼镜的Sensor Hub,以及Gnarbox的嵌入式控制器。今天,我会向大家讲述我们选择Zephyr的原因。

在为这些项目选择实时操作系统时,由于RTOS市场变得愈来愈碎片化,我们可以有很多的选择。固然,我们首先希望这个系统是既能使用授权又能够提供免费解决方案。由于当时FreeRTOS仍然属于GPL或专有授权,因此我们不再斟酌。Mbed OS是另一个竞争者,但是我们觉得它太依赖于Mbed生态系统。经过再三考虑,我们打算采用NuttX或者构建定制的操作系统。

再看NuttX,它以运行在Pixhawk无人机控制器上而闻名,缺点是它的构建系统完全不可靠。而且NuttX基本上由1人编写,所以没有同行评审。正当我们堕入苦恼时,Zephyr的出现,让我们眼前一亮。Zephyr是一款由Linux基金会托管的实时操作系统,它具有可扩展性,支持多种硬件架构,针对资源受限装备进行了优化(所有资源都是静态分配的),并且构建时斟酌了安全性。Zephyr成为能满足我们需求的选择。

无论对单个程序员还是大公司,Zephyr项目积极鼓励合作。我们所喜欢的一点就是,它在许多方面和Linux类似(代码风格和构建过程),拥有强大的社区关注和出色的文档。其宽容的Apache2.0授权也是一大优势。

Zephyr的发布周期是3到4个月,大约11周的整合窗口期和3周的稳定期。每一个版本都是所计划的新功能和社区贡献的组合。这些社区贡献意味着Zephyr为我们提供了大量开箱即用的产品,并使我们轻松将为客户产品添加的元素推向上游:支持意法半导体的STM32L4和STM32F0 MCU。STM32F1已经得到支持,因此我们能够复制该示例,从而简化开发工作。这也使移植速度很快,我们在一天半内就可以完成一项基本移植,不到一周时间内就可以完成一个经过全面测试的移植。

总之,我们发现Zephyr 结构公道,使用简单,移植时间可以集中在I2C或SPI测试上。一旦移植完成,Zephyr的上游过程非常简单。

步骤如下:

阅读贡献指南;

遵循Zephyr的代码标准清算我们的补丁(在uncrustify的帮助下);

验证补钉是否满足使用checkpatch的编码标准;

将更改提交到GitHub;

等待reviews;

幸运的是,Zephyr项目提供了reviewer社区,我们能够通过Zephyr IRC频道联系maintainers 以协助将补钉合并。

虽然在审核过程中存在挑战,但总体而言我们发现Zephyr易于入门,这得益于它和Linux在文档和活跃社区方面非常相似。这款实时操作系统的设计很适合低内存应用,当软件和开发过程随着社区投入和支持而演进时,问题会很快被修复。

如果你想听到更多关于我们采取Zephyr 设计消费电子产品的经验分享,请查看2017嵌入式Linux大会的演示文稿:。

关于Zephyr

Zephyr 项目是一款小型且可扩大的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式装备。

痛经小腹胀痛治疗
如何解决经期小腹胀痛
如何治经期小腹胀痛

相关推荐