ITBear旗下自媒体矩阵:

看Zephyr RTOS如何在消费电子产品开发中大显身手?

   时间:2018-07-16 15:46:26 来源:互联网编辑:星辉 发表评论无障碍通道

作者:Matt Fleming

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

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

再看NuttX,它以运行在Pixhawk无人机控制器上而闻名,缺点是它的构建系统完全不可靠。而且NuttX基本上由一人编写,所以没有同行评审。正当我们陷入苦恼时,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大会的演示文稿:https://www.youtube.com/embed/XUJK2htXxKw。

关于Zephyr

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

举报 0 收藏 0 打赏 0评论 0
 
 
更多>同类资讯
全站最新
热门内容
网站首页  |  关于我们  |  联系方式  |  版权声明  |  网站留言  |  RSS订阅  |  违规举报  |  开放转载  |  滚动资讯  |  English Version
关闭
ITBear微信账号

微信扫一扫
加微信拉群
电动汽车群
科技数码群