Zephyr会成为物联网时代RTOS的佼佼者?

原创 嵌入式大杂烩 2024-07-05 11:39

最近,有接触到Zephyr操作系统,在这之前我也没怎么了解过,简单了解了一下,发现其增长的势头还挺猛的。

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

Zephyr 简介

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

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

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

1、Zephyr软件架构:

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

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

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

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

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

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

2、Zephyr源码目录:

  • • 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成为构建物联网应用的核心操作系统之一。

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

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

设备树例子:

有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在智能家居、工业自动化、穿戴设备等领域得到广泛应用。

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丰富。

对于Zephyr,大家怎么看?欢迎留言讨论。顺便做个投票:

猜你喜欢:

常用的 Git 提交规范!

分享一种灵活性很高的协议格式(附代码例子)

易懂 | 手把手教你编写你的第一个上位机

嵌入式大杂烩 专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!
评论
  • 随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种:1)提高每个通道的比特速率,如直接提升波特率,或者保持波特率不变,使用复杂的调制解调方式(如PAM4);2)增加通道数,如提升并行光纤数量,或采用波分复用(CWDM、LWDM)。按照传输模式,光模块可分为并行和波分两种类型,其中并行方案主要应用在中短距传输场景中成本
    hycsystembella 2025-01-25 17:24 527浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 261浏览
  • 前篇文章中『服务器散热效能不佳有解吗?』提到气冷式的服务器其散热效能对于系统稳定度是非常重要的关键因素,同时也说明了百佳泰对于散热效能能提供的协助与服务。本篇将为您延伸说明我们如何进行评估,同时也会举例在测试过程中发现的问题及改善后的数据。AI服务器的散热架构三大重点:GPU导风罩:尝试不同的GPU导风罩架构,用以集中服务器进风量,加强对GPU的降温效果。GPU托盘:改动GPU托盘架构,验证出风面积大小对GPU散热的影想程度。CPU导风罩:尝试封闭CPU导风罩间隙,集中风流,验证CPU降温效果。
    百佳泰测试实验室 2025-01-24 16:58 220浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 199浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 541浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 1007浏览
  • 书接上回:【2022年终总结】阳光总在风雨后,启航2023-面包板社区  https://mbb.eet-china.com/blog/468701-438244.html 总结2019,松山湖有个欧洲小镇-面包板社区  https://mbb.eet-china.com/blog/468701-413397.html        2025年该是总结下2024年的喜怒哀乐,有个好的开始,才能更好的面对2025年即将
    liweicheng 2025-01-24 23:18 409浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 1248浏览
  • 项目展示①正面、反面②左侧、右侧项目源码:https://mbb.eet-china.com/download/316656.html前言为什么想到要做这个小玩意呢,作为一个死宅,懒得看手机,但又想要抬头就能看见时间和天气信息,于是就做个这么个小东西,放在示波器上面正好(示波器外壳有个小槽,刚好可以卡住)功能主要有,获取国家气象局的天气信息,还有实时的温湿度,主控采用ESP32,所以后续还可以开放更多奇奇怪怪的功能,比如油价信息、股票信息之类的,反正能联网可操作性就大多了原理图、PCB、面板设计
    小恶魔owo 2025-01-25 22:09 710浏览
  • 不让汽车专美于前,近年来哈雷(Harley-Davidson)和本田(Honda)等大型重型机车大厂的旗下车款皆已陆续配备车载娱乐系统与语音助理,在路上也有越来越多的普通机车车主开始使用安全帽麦克风,在骑车时透过蓝牙连线执行语音搜寻地点导航、音乐播放控制或免持拨打接听电话等各种「机车语音助理」功能。客户背景与面临的挑战以本次分享的客户个案为例,该客户是一个跨国车用语音软件供货商,过往是与车厂合作开发前装车机为主,且有着多年的「汽车语音助理」产品经验。由于客户这次是首度跨足「机车语音助理」产品,因
    百佳泰测试实验室 2025-01-24 17:00 226浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 510浏览
  • 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。1、RK3562J处理器概述RK3562J处理器采用了4*Cortex-A53@1.8GHz+Cortex-M0@200MHz架构。其中,4个Cortex-A53核心作为主要核心,负责处理复杂
    飞凌嵌入式 2025-01-24 11:21 330浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 364浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 865浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦