Zephyr RTOS 的特点

关注+星标公众,不错过精彩内容

1ff17a86e76c75323374fc100ba0df87.gif

转自 | 嵌入式大杂烩

最近,Zephyr这款RTOS操作系统增长的势头还挺猛的。

618c819867ade21683bc45461ffd5617.png

470f6e6648b0fe700a10d81bdc461aa6.png

下面我们一起来简单认识认识Zephyr。

Zephyr 简介

Zephyr RTOS是Linux基金会下的一个开源项目,以其高效、灵活、安全的特点,在实时操作系统领域崭露头角,成为物联网设备开发的首选之一。基于Apache 2.0许可

官网:https://www.zephyrproject.org/

代码仓:https://github.com/zephyrproject-rtos/zephyr

1、Zephyr软件架构:

2fee93a4469121b13ca657f62ff317cb.png

Zephyr从下到上大致分为如下几层:

硬件层:含了实际的硬件设备,如CPU、内存、外设等。这些硬件设备是操作系统运行的基础和支撑。

硬件抽象层(HAL):提供了对底层硬件的抽象和封装,使得操作系统内核和应用程序能够以一种统一的方式访问和控制硬件资源。这有助于提高代码的可移植性和可重用性。

内核层:Zephyr内核是操作系统的核心部分,负责任务调度、内存管理、中断处理等基本功能。Zephyr提供了两种内核:微内核(microkernel)超微内核(nanokernel),用户可以根据具体需求选择使用哪种内核或同时使用两者。

服务层:提供了一系列系统级的服务,如文件系统、网络协议栈、蓝牙协议栈等。这些服务为应用层提供了必要的支持和接口,使得应用程序能够更加方便地访问和使用底层硬件资源。

应用层:包含用户开发的各种应用程序。这些应用程序运行在Zephyr操作系统之上,利用操作系统提供的各种服务和接口实现具体功能。

2、Zephyr源码目录:

b127f5bceae82b65b4c9f186d0ba90dd.png
  • • arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。这些目录中存放了针对不同架构的移植文件,主要是针对不同的CPU进行适配,包括内核的源文件和头文件(其中包含私有API)等。例如,对于ARM架构,可能会有arch/arm目录,其中包含针对ARM CPU的适配代码。

  • • boards:存放板级代码及相关的配置文件。开发板属于SoC的子集,当我们选中一个开发板时,也就会自动确认其SoC的型号。此外,该目录下还包含了板子的设备树文件,用于描述板上可用资源。

  • • cmake:包含构建Zephyr所需的额外构建脚本。Zephyr使用CMake作为构建系统,构建过程可分为配置阶段和构建阶段。

  • • doc:系统文档目录,包含Zephyr的相关文档和工具。

  • • drivers:设备驱动目录,每个不同的驱动占用一个子目录。Zephyr为各种硬件设备提供了丰富的驱动程序。

  • • dts:devicetree源文件目录,用于描述特定板子的设备细节,如外设寄存器数量及寄存器地址。这些文件在构建过程中会被用来生成设备树信息,供操作系统内核使用。

  • • include:包含所有公共API的头文件(除了在lib下定义的部分)。这些头文件为开发者提供了访问Zephyr内核和各种组件的接口。

  • • kernel:与架构无关的内核代码目录,包含Zephyr操作系统的核心功能,如线程调度、内存管理等。

  • • lib:库代码目录,包括最小的标准C库等。这些库为Zephyr提供了基本的编程支持。

  • • misc:不属于任何其他顶级目录的杂项代码。

  • • modules:提供特定芯片系列的一些外设配置选项。

  • • samples:演示使用Zephyr特性的示例应用程序目录。这些示例代码有助于开发者快速上手Zephyr并理解其各种特性。

  • • scripts:用于构建和测试Zephyr应用程序的各种程序和其他文件。

  • • soc:SoC(System on Chip,片上系统)相关代码和配置文件目录。这些目录中存放了针对不同芯片的外设配置和部分功能初始化代码。

  • • subsys:Zephyr子系统目录,包括USB、网络、文件系统及蓝牙等子系统的代码。这些子系统为Zephyr提供了丰富的功能和接口。

Zephyr 的特性

1、安全性

安全性是Zephyr RTOS的重要特性之一。它提供了内存保护、安全启动和加密算法等安全功能,确保设备在面对潜在威胁时能够保持安全。

2、丰富的连接能力

Zephyr内置高效的TCP/IP网络栈,支持IPv4/IPv6,以及多种无线协议,如蓝牙(BLE)、Wi-Fi等,满足现代物联网设备的各种连接需求。这种广泛的连接能力使得Zephyr成为构建物联网应用的核心操作系统之一。

720d2e33092fe972feda60fb9b924d28.png

3、统一的构建系统与设备树支持

Zephyr提供了统一的构建系统和设备树支持,简化了跨平台开发流程。

设备树例子:

7d15ba7f0136d3e54df35b31fcabf5b4.png

有Linux设备树那味了?

zephyr的设备树管理和Linux设备树类似,都采用了树状结构来描述硬件资源,两者都支持通过属性(properties)来定义硬件设备的各种参数和配置信息。

Zephyr设备树与Linux设备树主要的区别:

zephyr设备树主要面向资源受限的嵌入式系统,Zephyr并不直接使用设备树编译后的二进制文件(DTB)。相反,它在构建编译阶段通过脚本将设备树信息转换为C语言头文件中的宏定义。这样,内核和应用程序可以通过调用这些宏定义来访问设备树信息,减少了运行时的资源消耗。

Linux设备树则直接使用设备树编译后的DTB文件。在系统启动时,Linux内核会解析DTB文件,获取硬件信息并进行板级初始化。这种方式提供了更高的灵活性和实时性。

构建方面Zephyr使用CMake作为构建系统,通过west build命令编译、链接应用程序,并生成可下载到目标设备的固件映像。此外,Zephyr还集成了GDB调试器,与Visual Studio Code、Eclipse等IDE无缝配合,为开发者提供良好的开发环境。

4、高效与灵活性

Zephyr RTOS是一款面向物联网的小型、可裁剪的实时操作系统,支持多种硬件平台(如ARM、x86、RISC-V等)和多种开发环境(Windows、Linux、MacOS)。其模块化设计允许开发者根据需求选择启用或禁用特定的功能,从而实现轻量级的内核以适应资源受限的硬件(最小资源需求:8KB Flash,5KB RAM)。

这种高度可配置性使得Zephyr在智能家居、工业自动化、穿戴设备等领域得到广泛应用。

7370551d7f87fb0311ac93c2eb6f1a7c.png

Zephyr 与RT-Thread、FreeRTOS的对比及其优略势

Zephyr优势

  • • 高效灵活:模块化设计使得Zephyr能够根据需求进行裁剪和配置。

  • • 安全性高:提供多种安全功能和开源许可保障代码安全。

  • • 连接能力强:支持多种无线协议和网络栈满足物联网设备的连接需求。

  • • 社区活跃:拥有活跃的全球社区提供持续的技术更新和支持。

Zephyr劣势

  • • 相对较新:与FreeRTOS及RT-Thread等RTOS相比,Zephyr的历史较短且市场认知度有待提高。

  • • 商业许可问题:虽然Zephyr本身开源免费,但基于Zephyr的商业项目可能需要考虑其他组件或服务的许可费用。

Zephyr 与 RT-Thread对比

RT-Thread与Zephyr类似,也是一款面向物联网的开源RTOS。然而,RT-Thread在生态系统和社区支持方面可能略逊于Zephyr。此外,RT-Thread在某些特定领域(如物联网操作系统标准制定)的参与度不如Zephyr高。

Zephyr 与 FreeRTOS对比

FreeRTOS是一款轻量级的RTOS,广泛应用于各种嵌入式系统中。与Zephyr相比,FreeRTOS在资源占用方面可能更加优化,但在安全性和模块化设计方面可能稍显不足。FreeRTOS的社区支持也非常活跃,但其在物联网领域的专门优化和特性可能不如Zephyr丰富。

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------

0ef70f5c3d11b75c9ea560cd0918fffc.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

768d11c6fdc2d013d7361fdc211e5d7a.png

点击“阅读原文”查看更多分享。

### Zephyr 实时操作系统的概述 Zephyr 是一款专为资源受限环境设计的开源实时操作系统(RTOS)[^2]。该系统采用GPLv2许可证,允许开发者自由使用、修改并分发代码。Zephyr 支持多种处理器架构,如 ARM、RISC- **开源性**:基于GPLv2许可协议发布。 - **跨平台支持**:兼容不同类型的微控制器单元(MCU),涵盖主流CPU体系结构。 - **轻量化与效率高**:特别适合于低功耗IoT节点和其他小型装置;具备较小内存占用率及迅速启动能力。 - **社区驱动的发展模式**:由全球范围内活跃的技术爱好者组成的社群共同维护和发展该项目,提供丰富的学习资料和技术援助渠道。 ### 学习资源推荐 对于希望深入了解开始利用这个RTOS的人来说,《Zephyr实时操作系统实战指南》是一份不可多得的学习材料[^1]。这份手册不仅介绍了基础知识还涵盖了更多高级主题,帮助读者逐步掌握构建稳定可靠的应用程序所需技能。除此之外,官方文档也是不可缺的重要参考资料之一,其中包含了详细的安装指导、编程接口说明等内容[^5]。 为了更好地理解Zephyr的工作原理及其内部实现细节,研究其源码树是非常有益的做法。例如`arch/`文件夹下存放着针对各个目标平台定制化的底层驱动程序和服务函数[^3]。 最后,在实际动手实践过程中可能会遇到各种具体问题,这时可以参考一些现成的例子来辅助解决问题。比如有一个展示基础应用程序框架搭建过程以及如何集成第三方组件至现有工程内的实例项目可供借鉴[^4]。 ```python # 示例Python脚本仅用于示意,并非真实可用代码 print("这是一个简单的Python示例") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值