Zephyr常用术语表
概述 链接到标题
本文翻译说明 Zephyr RTOS 官方文档提供的术语表,主要涵盖了从构建系统、硬件抽象到内核组件的各个方面。这些术语是理解、使用和沟通 Zephyr 框架的基础,对于 Zephyr 项目贡献者和学习者具有重要参考价值。了解这些术语对于 Zephyr 开发者具有以下重要意义:
- 统一沟通语言:确保团队成员在讨论 Zephyr 相关概念时使用一致的术语,避免理解偏差
- 快速上手开发:帮助新开发者快速理解 Zephyr 项目的架构设计和核心概念
- 深入理解系统:掌握这些术语有助于理解 Zephyr 的内部工作机制和设计哲学
- 高效问题排查:在遇到构建或运行时问题时,能够准确描述和定位问题所在
- 贡献项目代码:为向 Zephyr 项目贡献代码提供必要的概念基础
每个术语都提供了简明扼要的定义和详细说明,部分术语还包含使用场景和注意事项,帮助读者建立完整的知识体系。
内容 链接到标题
API(Application Program Interface):应用编程接口
- 用于应用软件开发的一组已定义接口规范,包括函数、数据结构及调用约定。
application:应用
- 由用户提供的一组文件,Zephyr 构建系统使用这些文件为指定的板级配置生成应用镜像。应用通常包含:
- 应用层源码
- 内核配置(Kconfig)
- 至少一个
CMakeLists.txt文件
- 应用的内核配置用于指导构建系统生成一个针对目标板资源优化的定制内核。
- 如果应用不依赖特定板级能力,则同一个应用可以构建到不同板卡或不同 CPU 架构上运行。
application image:应用镜像
- 为目标板编译生成的单一的完全链接的二进制可执行文件。该镜像同时包含:
- 应用代码
- 支撑该应用运行所需的 Zephyr 内核代码
- 二者被编译并链接为一个完整的单一二进制文件。镜像加载到板上后:
- 接管系统控制权
- 完成系统初始化
- 作为系统中唯一的应用运行
- 应用代码与内核代码运行在同一共享地址空间
architecture:架构
- 指令集架构(ISA)和编程模型。
board:板卡
- 具有明确设备组成和能力定义的硬件目标系统,可加载并执行应用镜像。可以是:
- 实际硬件板
- 运行在 QEMU 下的仿真系统
- 一个 board 可包含一个或多个 SoC。Zephyr 内核支持多种不同的板卡。
board configuration:板级配置
- 指定板上设备如何被内核使用的内核配置选项集合。
- 用于描述内核如何使用该板上的硬件设备。
- Zephyr 构建系统为每块支持的板卡定义一个或多个默认板级配置。
- 应用可以在需要时覆盖这些默认配置。
board name:板名称
- 人可读名称,唯一且描述性地标识特定系统。但该名称不足以完整描述构建 Zephyr 镜像所需的全部信息。
board qualifiers:板限定符
- 附加在板名称(以及可选的板版本)之后、用
/分隔的一组标识符,用于构成完整的 board target。包括:- SoC
- CPU cluster
- variant(变体)
board revision:板版本
- 用于标识硬件系统某一具体修订版本的可选字符串,在硬件发生小幅修改时避免重复创建板级文件。
board target:板目标
- 用于编译和链接特定硬件系统镜像的完整字符串,该字符串唯一标识:
- 板名称(board name)
- 板版本(board revision)
- 板限定符组合(board qualifiers)
CPU cluster:CPU 簇
- 由一个或多个 CPU 核心组成的处理器集合,特点是:
- 所有核心运行同一镜像
- 共享同一地址空间
- 以 SMP(对称多处理) 模式工作
- 同一个 cluster 中的核心必须属于相同架构。一个 SoC 中可以同时存在多个 CPU cluster。
CPU core:CPU 核心
- 具有独立程序计数器(PC)的单个处理执行单元,顺序执行指令。
- CPU core 属于某个 CPU cluster。
device runtime power management:设备运行时电源管理
- 允许设备独立于系统电源状态节省能源。
- 设备运行时电源管理(PM)指设备能够独立于系统整体电源状态进行节能管理的能力。
- 设备会维护自身的使用引用计数,并根据需要自动挂起或恢复。
- 该功能通过
CONFIG_PM_DEVICE_RUNTIME启用。
idle thread:空闲线程
- 当没有其他线程准备运行时运行的系统线程。
IDT(Interrupt Descriptor Table):中断描述符表
- x86 架构中用于实现中断向量表的数据结构。用于确定中断和异常的处理方式。
internal API:内部 API
- 定义在 Zephyr 源码树中的内部函数、结构或宏,主要用于:
- 扩展 Zephyr
- 在特定软件组件之间使用(通常是树内组件)
- 应用代码不得调用其作用域之外的内部 API。内部 API 通常保持相对稳定,但其稳定性低于公共 API。
ISR(Interrupt Service Routine):中断服务程序
- 由硬件中断或软件中断指令触发中断处理函数,用于处理需要立即响应的高优先级事件。
kernel:内核
- 由 Zephyr 提供的一组源码文件,实现了:
- 内核核心服务
- 设备驱动
- 网络协议栈等系统功能
power domain:电源域
- 一组在电源控制上作为整体同时上电或断电的设备集合。电源域以 device 的形式表示。
power gating:电源门控
- 通过关闭芯片中未使用区域的供电来降低功耗的技术。
private API:私有 API
- 仅供其定义所在的软件组件内部使用的函数、结构或宏。私有 API 随时可能变更,禁止被组件外代码使用。
public API:公共 API
- 定义在
include/zephyr目录中,且未标记为私有的 API。可供树内/树外组件统一使用。公共 API 需遵循 API 生命周期规则,能保证长期稳定。
SoC(System on a Chip):片上系统
- 包含至少一个 CPU 集群、外设和内存的集成电路。至少包含:
- 一个 CPU cluster(包含一个或多个 CPU core)
- 外设
- 存储器
SoC family:SoC 家族
- 在架构和特性上具有高度共性的一个或多个 SoC 或 SoC 系列。
SoC series:SoC 系列
- 具有相似特性并由厂商统一命名和推广的一组 SoC。
software component:软件组件
- Zephyr 源代码的自包含、模块化和可替换部分。Zephyr 源码中的自包含、模块化、可替换的软件单元。例如:
- 驱动
- 子系统
- 应用
subsystem:子系统
- 操作系统中负责某一类特定功能或服务的逻辑模块。
system power state:系统功耗状态
- 描述整个系统功耗水平的状态,在 Zephyr 中由
pm_state表示。
variant:变体
- 在板限定符上下文中,指定特定类型的构建。在 board qualifiers 语境下,用于区分某一 SoC + CPU cluster 组合的特定构建类型或配置。常见用途包括:
- 安全 / 非安全构建(TEE)
- 不同 RAM 类型选择
west:Zephyr 项目的多仓库管理工具。
west installation:west 0.7 之前的过时术语,用于 west 工作空间。
west manifest:描述项目或 Git 存储库及其元数据的 YAML 文件。
west manifest repository:包含 west manifest 的 Git 仓库,其路径由 manifest.path 指定。
west project:west manifest 中的每一条项目描述,对应一个被 west 管理的 Git 仓库。west project 不等同于 zephyr module,但二者可以重合。
west workspace:包含 .west 目录和 manifest 仓库的工作目录通过 west init 创建,用于克隆 Zephyr 及其相关项目。
XIP(eXecute In Place):直接从非易失性存储器(如 Flash)执行代码的方式,无需复制到 RAM,从而节省可写内存空间。
zephyr module:包含 zephyr/module.yml 的 Git 仓库,用于将模块源码和配置集成到 Zephyr 构建系统中。模块可以是 west project,但不是必须。