内核服务

Zephyr 内核是每个 Zephyr 应用的核心。它提供占用空间小、性能高的多线程执行环境,并具备丰富的功能。Zephyr 生态系统中的其他部分,包括设备驱动程序、网络协议栈和应用专用代码,都利用内核功能构成完整的应用。

内核具有可配置性,只需纳入应用所需的功能,因此非常适合内存有限(最低只需 2 KB!)或多线程需求简单的系统,例如由一组中断处理程序和一个后台任务组成的系统。这类系统包括嵌入式传感器集线器、环境传感器、简单的 LED 可穿戴设备和商店库存标签。

对于需要更多内存(50 至 900 KB)、多个通信设备(如 Wi-Fi 和低功耗蓝牙)以及复杂多线程功能的应用,也可以使用 Zephyr 内核进行开发。这类系统包括健身可穿戴设备、智能手表和物联网无线网关。

调度、中断与同步

这些页面介绍与线程调度和同步相关的基本内核服务。

数据传递

这些页面介绍可用于在线程与 ISR 之间传递数据的内核对象。

下表概述了它们的主要特性。

对象

双向?

数据结构

数据项大小

数据对齐

ISR 能否接收?

ISR 能否发送?

溢出处理

FIFO

否

队列

任意 [1]

4 B [2]

是 [3]

是

不适用

LIFO

否

队列

任意 [1]

4 B [2]

是 [3]

是

不适用

栈

否

数组

字

字

是 [3]

是

未定义行为

消息队列

否

环形缓冲区

任意 [6]

2 的幂

是 [3]

是

挂起线程或返回 -errno

邮箱

是

队列

任意 [1]

任意

否

否

不适用

管道

否

环形缓冲区 [4]

任意

任意

是 [5]

是 [5]

挂起线程或返回 -errno

脚注

内存管理

参见 内存管理。

计时

这些页面介绍与计时相关的服务。

其他

这些页面介绍其他内核服务。