Zephyr 学习笔记(一)

概述

Zephyr OS 是一个占用空间小的内核,用于资源受限的嵌入式系统:从简单的嵌入式环境传感器、LED 可穿戴设备到复杂的嵌入式控制器、智能手表和物联网无线应用。

Zephyr 内核支持多种架构,包括:

  • ARCv2 (EM and HS) and ARCv3(HS6X)
  • ARMv6-M、ARMv7-M、ARMv8-M
  • ARMv7-A and ARMv8-A (Cortex-A, 32- and 64-bit)
  • ARMv7-R, ARMv8-R (Cortex-R, 32- and 64-bit)
  • Intel x86 (32- and 64-bit)
  • MIPS (MIPS32 Release 1 specification)
  • NIOS II Gen 2
  • RISC-V (32- and 64-bit)
  • SPARC V8
  • Tensilica Xtensa
  • 等等…

许可

Zephyr 使用 Apache 2.0 许可证,是对商业应用友好的许可。

特点

Zephyr 提供了大量且不断更新的功能,包括:

内核服务组件

  • 内核支持多种调度策略:协作线程、基于优先级的线程、非抢占式线程和抢占式线程,以及可选的时间片轮转。包括 POSIX pthreads 兼容 API 支持。
  • 中断服务,用于中断处理程序的编译时注册
  • 内存分配服务,用于动态分配和释放固定大小或可变大小的内存块
  • 完善的 IPC 机制
  • 增强消息队列和字节流
  • 电源管理服务,如总体的、应用或策略定义的 "系统电源管理 "和细粒度的、驱动程序定义的 “设备电源管理”

多种调度算法

Zephyr 提供了一套全面的线程调度选项

  • 协作是和抢占式调度
  • 最早截止日期优先(EDF)
  • Meta IRQ 调度实现“中断下半部分”或“tasklet” 行为
  • 时间片:在优先级相同的抢占式线程之间启用
  • 多种排队策略:
    • 简单的链表就绪队列
    • 红黑树就绪队列
    • 传统的多任务就绪队列

设备树支持

使用 devietree 来描述硬件,解耦硬件与驱动程序。

低功耗蓝牙 5.0

支持蓝牙 5.0 和低功耗蓝牙控制器,包括 蓝牙 mesh 和 蓝牙 controller。

  • 具有所有可能的 LE 角色的通用访问配置文件(GAP)
  • 通用属性配置文件(GATT)
  • 配对支持,包括蓝牙的安全连接功能 4.2
  • 干净的 HCI 驱动程序抽象
  • 原始 HCI 接口,可将 Zephyr 作为控制器运行,而非完整的 Host 协议栈
  • 已通过多种常用控制器的验证
  • 高度可配置

Mesh Support:

  • 等等…

Zephyr 还支持内存保护、编译时资源定义(编译期初始化)、优化的设备驱动程序模型、网络协议栈、完善的构建系统等等。。。

由此可见,Zephyr 原生支持蓝牙、网络等众多组件,可谓是五脏俱全了。Zephyr 相较于同类开源系统是具有一定的上手难度的,尤其是引入的设备树、cmake 模块化构建系统思想等原理上的掌握。但实际上,也并没有多高的门槛,搞起来!!!

参考

Zephyr 官方

相关推荐

  1. Zephyr 学习笔记

    2024-01-21 14:18:03       34 阅读
  2. Zephyr PM电源管理系统学习笔记

    2024-01-21 14:18:03       13 阅读
  3. Zephyr storage存储子系统系统学习记录

    2024-01-21 14:18:03       11 阅读
  4. PyTorch学习笔记

    2024-01-21 14:18:03       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 14:18:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 14:18:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 14:18:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 14:18:03       18 阅读

热门阅读

  1. list下

    list下

    2024-01-21 14:18:03      25 阅读
  2. 李沐深度学习-多项式函数拟合试验

    2024-01-21 14:18:03       39 阅读
  3. Word的使用

    2024-01-21 14:18:03       29 阅读
  4. AndroidStudio

    2024-01-21 14:18:03       41 阅读
  5. SQL的五大约束作用、语法、应用场景及举例

    2024-01-21 14:18:03       27 阅读
  6. c# 释放所有嵌入资源, 到某个本地文件夹

    2024-01-21 14:18:03       37 阅读
  7. RNN神经网络 python

    2024-01-21 14:18:03       39 阅读
  8. 将Matlab图窗中的可视化保存为背景透明的矢量图

    2024-01-21 14:18:03       35 阅读
  9. GPT属于AI,是LLM的一种实现

    2024-01-21 14:18:03       31 阅读
  10. Kotlin的数据类

    2024-01-21 14:18:03       38 阅读
  11. leetcode-2788按分隔符拆分字符串

    2024-01-21 14:18:03       37 阅读