1. nRF54系列与Zephyr生态全景

nRF54 系列是 Nordic 在 nRF52 之后推出的新一代低功耗无线 SoC 家族,目前主要分为两条产品线:面向高集成度应用与复杂协议栈的 nRF54H 系列,以及面向主流低功耗蓝牙与 2.4 GHz 应用的 nRF54L 系列。理解这两条线的架构差异,是后续在 Zephyr 中正确选型、配置设备树与多核调试的前提。

一、nRF54H 与 nRF54L 的架构差异

nRF54H 系列采用多核异构架构。以 nRF54H20 为例,芯片内部集成应用核(Application Core,Cortex-M33)、网络核(Network Core,Cortex-M33)、外设核(Peripheral Core,Cortex-M33)以及一颗用于射频实时控制的 Fast Lightweight Core(FLPR)。应用核负责业务逻辑与协议栈上层,网络核承担蓝牙、Thread、Zigbee 等无线协议栈的实时调度,外设核管理 GPIO、串口、定时器等低速外设,FLPR 则处理射频时序与低延迟事件。这种划分让无线协议栈与用户应用在物理上隔离,避免相互抢占导致的时序抖动。

nRF54L 系列则是单主核加协处理的结构。以 nRF54L15 为例,主核为 Cortex-M33,主频 128 MHz,配备 1.5 MB Flash 与 256 KB RAM,同时集成一颗 RISC-V 协处理器用于外设与射频辅助控制。相比 nRF54H,nRF54L 的核间关系更简单,适合成本敏感、协议栈相对单一的产品,例如可穿戴设备、HID 外设与传感器节点。

两者在内存与功耗上的定位也不同:nRF54H 提供更大的非易失存储与更丰富的高速外设,适合网关、工业控制与多协议并发场景;nRF54L 强调能效比与封装尺寸,适合电池供电的终端节点。选型时先明确“是否需要多协议并发与核间隔离”,再决定落在哪条产品线。

nRF54H 与 nRF54L 架构对比 nRF54H20(多核异构) Application Core Cortex-M33 · 业务逻辑 / 上层协议 Network Core Cortex-M33 · BLE / Thread / Zigbee Peripheral Core Cortex-M33 · GPIO / UART / 定时器 FLPR 射频时序 / 低延迟事件处理 nRF54L15(单主核 + 协处理) Main Core Cortex-M33 · 128 MHz 1.5 MB Flash / 256 KB RAM RISC-V 协处理器 外设辅助 / 射频控制 无线子系统 BLE / 2.4 GHz 专有协议

二、Zephyr RTOS 在 Nordic 平台的支持现状

Zephyr 对 Nordic 芯片的支持通过 soc/ 与 boards/ 目录下的设备树与 Kconfig 描述实现。nRF54L 系列在 Zephyr 主线中已有较完整的支持,包括时钟、GPIO、UART、SPI、I2C、PWM、ADC 以及蓝牙控制器;nRF54H 系列由于多核架构,支持进度稍慢,部分外设与核间通信(IPC)仍在持续完善。实际开发中应优先查阅当前 Zephyr 版本对应的 boards/nordic/ 目录,确认目标板是否已有 _defconfig 与 .dts 文件。

Zephyr 的设备模型以设备树为核心。以 nRF54L15 的 UART 为例,设备树中会定义 uart0 节点,包含寄存器基址、中断号、引脚映射与时钟源;驱动通过 DEVICE_DT_GET 获取设备实例,应用层再调用 uart_poll_out 或异步 API。这种“设备树描述硬件、Kconfig 选择驱动、应用调用统一 API”的三层结构,使同一份应用代码可以在不同 Nordic 芯片间迁移,只需更换板级配置。

三、nRF Connect SDK 与 Zephyr 的关系

nRF Connect SDK(NCS)是 Nordic 官方发行的开发套件,它以 Zephyr 为内核与构建框架,在其上叠加了 Nordic 自有的中间件、协议栈与示例。可以这样理解:Zephyr 提供 RTOS 内核、设备驱动模型、构建系统(West + CMake)与基础协议栈;NCS 在此基础上加入 SoftDevice Controller、nRF 802.15.4 驱动、Matter/Thread 支持、nRF Cloud 库以及大量板级示例。

因此,NCS 的版本与 Zephyr 版本存在对应关系。例如 NCS v2.6 对应 Zephyr 3.5,NCS v2.7 对应 Zephyr 3.7。开发时不能随意混用:若在 NCS 工程中直接拉取 Zephyr 主线代码,可能因 API 变更导致编译失败。正确做法是通过 west manifest 锁定版本,使用 west update 同步所有模块。

判断一个 API 属于 Zephyr 还是 NCS 的简单方法:查看头文件路径。位于 zephyr/include/zephyr/ 下的是 Zephyr 原生 API;位于 nrf/include/ 或 nrfx/ 下的是 Nordic 扩展。

四、开发工具链总览

NCS 的工具链由以下几部分组成:West 负责多仓库管理与构建调度;CMake 负责生成构建文件;Ninja 负责实际编译;GCC ARM Embedded 或 LLVM 作为编译器;nRF Util 与 nrfjprog 负责烧录与调试;SEGGER J-Link 提供调试探针支持。IDE 方面可使用 VS Code 配合 nRF Connect 扩展,或使用 SEGGER Embedded Studio。

一个典型的构建与烧录流程如下:

# 初始化工作区(首次)
west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.7.0 ncs
cd ncs
west update

# 构建 nRF54L15 的 blinky 示例
west build -b nrf54l15dk/nrf54l15/cpuapp zephyr/samples/basic/blinky

# 烧录
west flash

# 打开串口日志
west espressif monitor   # 或使用 nrf util device monitor

构建完成后,可在 build/zephyr/ 下找到 zephyr.elf、zephyr.hex 与 .config。其中 .config 记录了本次构建实际生效的所有 Kconfig 选项,是排查“某个驱动为什么没被编译进来”的第一手依据。若串口无输出,先检查 CONFIG_SERIAL 与 CONFIG_LOG 是否使能,再确认设备树中 uart0 的 status 是否为 okay。

nRF54H 系列的多核工程需要为每个核分别构建镜像,并通过 IPC 进行通信。初次接触时建议先从 nRF54L 单核示例入手,熟悉 NCS 的构建与调试流程后,再进入多核场景。