大数跨境

每天了解一个物联网操作系统(十四)(Zephyr操作系统)

每天了解一个物联网操作系统(十四)(Zephyr操作系统) 数组智控产业发展科技院
2021-08-03
1
导读:Zephyr项目是一个开源合作项目,联合业内领先企业构建了针对资源受限设备进行优化的最佳小型可扩展实时操作系

Zephyr项目是一个开源合作项目,联合业内领先企业构建了针对资源受限设备进行优化的最佳小型可扩展实时操作系统(RTOS)。



Zephyr内核源自Wind River VxWorks的商用VxWorks微内核配置文件(Microkernel Profile)。微内核配置文件(Microkernel Profile)已经发展了20多年,RTOS已被用于多种商业应用,包括卫星、军事指挥和控制通信、雷达、电信和图像处理等。


Zephyr是针对连接资源受限设备的最佳开源RTOS,并且安全性较高。


Zephyr项目的初创成员有:英特尔公司(包括收购的Altera Corporation和WindRiver)、恩智浦半导体公司(包括并购的Freescale)、Synopsys公司、Linaro公司、Runtime.io、Nordic半导体公司和oticon公司。


Zephyr项目将会在互联、嵌入式设备市场中产生重大影响。Zephyr社区通过提供可扩展、可定制、安全且开源的操作系统,来满足互联设备开发不断演变的需求,以推动Zephyr项目不断创新。


Zephyr项目能够满足行业对开源RTOS日益增长的需求,这种RTOS符合当今资源受限的安全物联网设备的需求。


Zephyr的特色如下:


● 单地址空间:将特定于应用程序的代码与定制的内核代码组合在一起,以创建一个在系统硬件上加载并执行的唯一机器码(image)。应用程序代码和内核代码都在单地址空间中执行。


● 高度可配置:灵活的模块化,仅保留所需的功能模块,并指定模块的数量和大小。


● 交叉结构:支持多种电路板、不同的CPU架构和开发工具。Zephyr已经募集了许多SoC的支持,包括开发平台和底层驱动。


● 资源定义:允许在编译时定义系统资源,从而减少代码量并提高程序性能,以应用于资源受限的嵌入式单片机系统中。


● 错误检查:提供最小运行时间出错检查,以减少代码大小并提高性能。Zephyr提供了一个可选的错误检查模块,帮助开发者在应用程序开发过程中进行软件调试。


● 存储保护:实现可配置体系结构特定的堆栈溢出保护。在x86、ARC和ARM架构的微处理器上,利用内核对象和设备驱动程序权限跟踪,在用户空间和内存领域中使用线程隔离方法达到线程及内存保护目的。


● 网络协议:支持多种网络协议栈。网络支持LwM2M、BSD套接字、低功耗蓝牙BLE和BLE控制器,支持Windows API、OpenThread函数和自组网安全设计,可连接百余种产品。


服务套件:Zephyr操作系统为软件开发提供了许多熟悉的服务。


➢ 多线程服务:可以用于以优先级为基础非抢占式的线程,以及以优先级为基础抢占式、可选时间片轮询的任务,包括pthreads兼容的API支持。

➢ 中断服务:可以在编译和程序运行时处理中断程序。

➢ 内存分配服务:动态地分配内存块。

➢ 同步服务:为线程间的二进制信号(Semaphore)、计数信号、互斥信号提供同步服务。

➢ 数据传递服务:为线程间的基本消息队列、增强的消息队列和字节流提供数据传输服务。

➢ 电源管理服务:空闲状态和闲置硬件模块电源低耗管理。

➢ 文件服务:支持Newtron Flash(NFFS)和FATFS, FCB(Flash循环缓冲区)用于内存受限的应用项目,增强的文件系统用于日志记录和系统参数配置。

➢ 测试服务:Ztest是覆盖测试基础套件,用于添加功能和更新程序时的集成测试和验证。


支持的微处理器类型:


● ARM;

● x86;

● ARC;

● NIOS II;

● XTENSA;

● Native POSIX;

● RISCV32;

● EPS32(乐鑫)。


Zephyr操作系统支持的通信标准和网络协议如下:


● Bluetooth 5.0 compliant;

● Bluetooth Low Energy(BLE);

● Generic Access Profile (GAP);

● GATT (Generic Attribute Profile);

● Pairing;

● IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE;

● Basic Bluetooth BR/EDR (Classic);

● IPv6/IPv4;

● Dual stack support;

● UDP/TCP;

● BSD Sockets API;

● HTTP/MQTT/CoAP;

● LWM2M;

● RPL/DNS;

● Network Management API;

● Multiple Network Technologies;

● Minimal Copy Network Buffer Management;

● IEEE 802.15.4(ZigBee、WirelessHART、MiWi和Thread);

● IEEE802. 11a/b/g(Wi-Fi);

● SLIP(IP over serial line)。


未来,Zephyr操作系统会扩展更多通信和网络支持。


Zephyr系统内核


微内核(Micro-kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,是一种能够提供必要服务的操作系统内核。其中这些必要的服务包括任务、线程、交互进程通信(Inter Process Communication, IPC),以及内存管理等。所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何程序一样,每个服务在自己的地址空间运行。所以这些服务彼此之间都受到了保护。


纳内核(Nano-kernel,超微内核),对微内核进行更进一步的缩减,对硬件进行了抽象,为更高级别的操作系统提供优先权,支持实时性,克服了微内核结构消息传递机制效率低下的缺点。


Zephyr纳内核是性能卓越的、带有内核基本特征的多线程执行环境。纳内核是小内存系统(内核本身只需2KB内存空间)或单一多线程需求系统(如中断请求处理、单一的空闲任务)的理想选择,这类系统包括嵌入式传感器设备、环境传感器、简单的可穿戴LED和仓库存货标记。


Zephyr微内核在纳内核的基础上加入了更加强大的内核功能。微内核适用于大内存(50~900KB)、多通信设备(例如Wi-Fi和低功耗蓝牙)、多数据处理任务的系统,这些系统包括健康可穿戴设备、智能手表及loT无线网关。


Zephyr内核支持一系列目标系统,这些目标系统被叫做borad(开发板)。每个board都有自己系列的硬件设备和功能。对于一个给定的board,都有一个或多个board配置文件。board配置文件用于告诉内核如何使用board上的设备。利用开发板(board)和它的配置文件,使相似的应用目标系统只开发一个应用程序成为可能,并且减少了原本的工作量。


应用程序镜像文件是一个控制硬件系统,可运行在仿真系统QEMU之下的二进制文件。它既包含应用程序代码,又包含Zephyr内核代码。应用程序代码和内核代码被编译成单一的、链接在一起的二进制文件。


镜像文件被加载到目标系统上后,就控制了整个系统进行初始化,然后作为系统唯一的程序一直运行。应用程序代码和内核代码都在共享地址空间以特权代码的方式运行。


Zephyr的编译系统负责将用户提供的一系列文件编译生成镜像文件。应用程序由相关代码、内核配置文件和Makefile共同组成。内核配置文件的作用是让编译系统生成一个量身定制的应用程序,该程序能够最大程度地利用系统资源。




【声明】内容源于网络
0
0
数组智控产业发展科技院
以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
内容 986
粉丝 0
数组智控产业发展科技院 以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
总阅读450
粉丝0
内容986