本帖最后由 guoyuli 于 2023-9-6 10:14 编辑
Zephyr OS是基于一个小型内核设计的操作系统,用于资源受限和嵌入式系统,从简单的嵌入式环境传感器和LED可穿戴设备到复杂的嵌入式控制器、智能手表和物联网无线应用。 Zephyr内核支持多种架构,包括: - ARCv2(EM和HS)和ARCv3(HS6X)
- ARMv6-M、ARMv7-M和ARMv8-M(Cortex-M)
- ARMv7-A和ARMv8-A(Cortex-A,32位和64位)
- ARMv7-R和ARMv8-R(Cortex-R,32位和64位)
- Intel x86(32位和64位)
- MIPS(MIPS32 Release 1规范)
- NIOS II Gen 2
- RISC-V(32位和64位)
- SPARC V8
- Tensilica Xtensa
可以在这里找到基于这些架构的支持板的完整列表。 许可证:Zephyr使用Apache 2.0许可证进行宽松许可。项目的GitHub存储库中的LICENSE文件中可以找到详细信息。Zephyr项目的某些导入或重用组件使用其他许可证,具体说明可以在Zephyr项目组件的许可证中找到。 突出特点:Zephyr提供了大量且不断增长的功能,包括: 广泛的内核服务套件Zephyr提供了一些熟悉的开发服务:
协作、基于优先级的、非抢占式和抢占式线程的多线程服务,可选择循环调度。包括支持POSIX pthreads兼容API的接口。 编译时注册中断处理程序的中断服务。 动态分配和释放固定大小或可变大小的内存块的内存分配服务。 二进制信号量、计数信号量和互斥信号量的线程间同步服务。 基本消息队列、增强消息队列和字节流的线程间数据传递服务。 电源管理服务,如总体、应用或策略定义的系统电源管理以及精细化、驱动程序定义的设备电源管理。
多种调度算法Zephyr提供了全面的线程调度选择:
高度可配置/模块化以提供灵活性允许应用程序仅包含其需要的功能,并指定它们的数量和大小。 跨架构支持支持各种不同CPU架构和开发工具的支持板。贡献者已经添加了对越来越多的系统芯片(SoCs)、平台和驱动程序的支持。 内存保护Zephyr OS实现了可配置的架构特定的堆栈溢出保护、内核对象和设备驱动程序权限跟踪以及在x86、ARC和ARM架构、用户空间和内存域上进行线程隔离和线程级内存保护。 编译时资源定义允许在编译时定义系统资源,减小代码大小,并提高资源有限系统的性能。 优化的设备驱动模型提供了统一的设备模型,用于配置平台/系统中的驱动程序,并提供了统一的模型,用于初始化系统中配置的所有驱动程序,并允许在具有相同设备/IP块的平台之间重用驱动程序。 设备树支持使用设备树描述硬件。从设备树中获取的信息用于创建应用程序映像。 原生网络堆栈支持多种协议网络支持功能齐全且经过优化,包括LwM2M和BSD套接字兼容支持。还提供OpenThread支持(适用于Nordic芯片组)- 这是一个安全可靠的网状网络,可连接数百个家庭产品。 支持蓝牙低功耗5.0符合Bluetooth 5.0(ESR10)标准和蓝牙低功耗控制器支持(LE链路层)。包括蓝牙网状网络和一个符合蓝牙资格要求的蓝牙控制器。 通用访问配置文件 (GAP) 包含所有可能的LE角色 通用属性配置文件 (GATT) 配对支持,包括来自Bluetooth 4.2的安全连接功能 清晰的HCI驱动程序抽象 原始HCI接口,以将Zephyr作为控制器运行,而不是完整的主机栈 经过验证与多个流行控制器兼容 高度可配置 网状支持: 中继、友好节点、低功耗节点 (LPN) 和GATT代理功能 支持两种分配承载方式 (PB-ADV 和 PB-GATT) 高度可配置,适用于至少16k RAM的设备 对于没有MMU/MPU和内存受限设备的平台,支持将应用程序特定代码与自定义内核组合,创建一个加载和执行在系统硬件上的单一共享地址空间中的单体映像。 本地Linux、macOS和Windows开发在流行的开发者操作系统上使用命令行CMake构建环境。本地POSIX端口允许您在Linux和其他操作系统上构建和运行Zephyr作为本机应用程序,有助于开发和测试。
支持LittleFS和FATFS的虚拟文件系统接口支持LittleFS和FATFS,针对内存受限应用程序的FCB(Flash循环缓冲区),以及用于日志记录和配置的文件系统增强功能。 强大的多后端日志记录框架支持日志过滤、对象转储、紧急模式、多个后端(内存、网络、文件系统、控制台等)和与shell子系统的集成。 用户友好且功能齐全的Shell界面多实例shell子系统,具有用户友好的功能,如自动补全、通配符、彩色显示、元键(箭头、退格、ctrl+u等)和历史记录。支持静态命令和动态子命令。 非易失性存储器中的设置设置子系统为模块提供了一种存储持
|