一、认识Zephyr RTOS1. 什么是Zephyr RTOS?
Zephyr是一个开源的实时操作系统(RTOS),主要用于微控制器(MCU)设备开发。它小巧、高度可配置,并且有丰富的硬件支持和示例,非常适合教学、嵌入式开发和 IoT 项目。
特点:
支持多种架构:ARM Cortex-M、RISC-V、x86 等
模块化设计,内核+设备驱动+协议栈
支持DeviceTree(硬件描述文件)
提供官方示例,快速上手
小知识:RTOS的核心是“实时性”,意味着系统能在严格的时间限制内响应外部事件,这是嵌入式控制的关键。2. 为什么选择 Zephyr + VSCode?
VSCode:轻量、跨平台、插件丰富 Zephyr+VSCode:可以直接在编辑器里写代码、编译、烧录、调试 FRDM-MCUXpresso-WM72:NXP的Cortex-M7教学板,官方有Zephyr支持二、准备电脑环境
我这里用到的系统是Windows 10,也支持Linux或macOS,命令会有一点差别。运行Zephyr需要一些环境的支持,属于开发环境的电脑环境,有一些软件还是非常有必要的。1. 安装Python 3
Python是Zephyr的脚本语言基础,用来安装工具、管理项目。 步骤: 打开 Python 官网 下载最新版 Python 3.x。 安装时 务必勾选“Add Python to PATH”。 安装完成后,验证:python --version

2. 安装 Git
Git是管理源码的工具,Zephyr用它下载源码和模块。 步骤: 打开Git官网下载Git。 安装时默认选项即可,但要选择“Use Git from the command line and also from 3rd-party software”。 验证:
git --version
3. 安装 VSCode
三、安装Zephyr必备工具1. West(Zephyr 的项目管理工具)
python -m pip install --user west

如上图,我们通过:
west --version提示找不到,主要原因是west.exe已经安装成功,但系统的命令行找不到它,因为它所在的路径没有加入环境变量PATH,要不我们在使用的时候每次在命令行先加上路径,明显这种方法并不方便,最好还是加入到系统PATH。 打开环境变量设置: Win + R → 输入 sysdm.cpl → 回车 选择 高级 → 点击 环境变量 在 用户变量 或 系统变量 找到 Path → 点击 编辑 新增:(注意这个路径要和你安装的路径一致) C:\Users\sjz\AppData\Roaming\Python\Python311\Scripts 点击 确定 保存。 这个时候我们要重启一下CMD,然后输入:
west --version

West 可以帮你下载、更新 Zephyr 项目和依赖。
2. CMake(项目编译工具)
下载CMake并安装,勾选 “Add CMake to system PATH” 验证:cmake --version

三、初始化Zephyr
我们新建了一个文件夹主要用于Zephyr相关的管理,目前来看前期的配置还是有点麻烦的,我们一般的开发都有官方的一站式配置,到目前位置Zephyr的配置还在一步一步通过命令行进行。 通过命令从github上拉取,一定会设计到网络问题,多试几次:CD D:\Zephyr\zephyr west init . west update

west zephyr-export
完成这里的步骤接下来就是下载对应的SDK,我用的是NXP的板子,直接下载的NXP Zephyr仓库,建议去自行下载,不然总是会出现错误的。仓库的基本结构如下:nxp_zephyr/nxp_zephyr/ ├── .west/ # West 配置 │ └── config # 清单路径配置 ├── zephyr/ # Zephyr RTOS 核心 │ ├── arch/ # 架构支持 (arm) │ ├── boards/ # 板级支持 │ ├── cmake/ # 构建模块 │ ├── drivers/ # 驱动 │ ├── dts/ # 设备树 │ ├── kernel/ # 内核 │ ├── modules/ # 模块 (hal_nxp) │ └── samples/ # 示例程序 ├── modules/ # 外部模块 │ ├── hal/nxp/ # NXP 硬件抽象层 │ ├── hal/cmsis/ # CMSIS 支持 │ ├── crypto/ # 加密驱动 │ ├── tee/ # 信任固件 │ └── lib/ # 通用库 ├── bootloader/mcuboot/ # MCUBoot 启动加载器 └── zsdk/ # ZSDK 清单定义
四、软硬件平台
同时支持调试和串口通信
无需额外安装驱动(自动识别)
串口参数:115200 baud, 8N1
工具链配置
项目使用 MCUXpresso Tools 自带的 GNU Arm Embedded Toolchain。工具链路径
CMakeLists.txt 工具链配置
-DZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb -DGNUARMEMB_TOOLCHAIN_PATH="C:/Users/sjz/.mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi"
环境变量
建议在 Windows 系统环境变量中添加:五、工程创建工程目录结构
F:/01_SoftwareProgram/17_Zephyr/test/ ├── CMakeLists.txt # CMake 构建配置 ├── prj.conf # Kconfig 应用配置 ├── sample.yaml # 示例元数据 ├── src/ │ └── main.c # 应用入口程序 └── build/ # 构建输出目录 (自动生成)
构建配置 (CMakeLists.txt)
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(hello_world)
target_sources(app PRIVATE src/main.c)应用配置 (prj.conf)
# 空配置文件,使用开发板默认配置 # CONFIG_ARM_MPU=y # CONFIG_SERIAL=y # CONFIG_CONSOLE=y # CONFIG_UART_CONSOLE=y # CONFIG_GPIO=y
应用程序 (main.c)
/*
* Copyright (c) 2012-2014 Wind River Systems, Inc.
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdio.h>
int main(void)
{
printf("Hello World! 11%s\n", CONFIG_BOARD_TARGET);
return 0;
}编译配置 (sample.yaml)
sample: name: Hello World type: no platforms: frdm_mcxw72 depends_on: serial tags: samples
六、编译构建CMake 配置
在工程目录下执行以下命令配置构建系统:cd F:/01_SoftwareProgram/17_Zephyr/test cmake -DWEST_PYTHON="C:/Users/sjz/AppData/Local/Programs/Python/Python313/python.exe" \ -DPython3_EXECUTABLE="C:/Users/sjz/AppData/Local/Programs/Python/Python313/python.exe" \ -DCMAKE_PREFIX_PATH="h:/nxp_zephyr/nxp_zephyr/zephyr/share/zephyr-package/cmake;h:/nxp_zephyr/nxp_zephyr/zephyr/cmake/modules" \ -DZEPHYR_BASE="h:/nxp_zephyr/nxp_zephyr/zephyr" \ -DZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb \ -DGNUARMEMB_TOOLCHAIN_PATH="C:/Users/sjz/.mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi" \ -GNinja \ -DBOARD=frdm_mcxw72 \ -Bbuild .
执行编译
cd F:/01_SoftwareProgram/17_Zephyr/test/build cmake --build .
编译输出
Memory region Used Size Region Size %age Used FLASH: 17984 B 2 MB 0.86% RAM: 4016 B 232 KB 1.69% SMU2: 0 B 64 KB 0.00% IDT_LIST: 0 B 32 KB 0.00% Generating files from F:/01_SoftwareProgram/17_Zephyr/test/build/zephyr/zephyr.elf for board: frdm_mcxw72/mcxw727c
生成文件
七、串口验证
使用USB Type-A转Type-C数据线连接PC与开发板USB接口。串口接收如下:

八、常见问题与解决方案Python 版本不满足要求
问题:Zephyr 要求 Python ≥ 3.12,系统默认使用 Python 3.11解决方案:# 方案1:修改 PATH 环境变量优先使用 Python 3.13 export PATH="C:/Users/sjz/AppData/Local/Programs/Python/Python313:$PATH" # 方案2:使用绝对路径调用 Python 3.13 "C:/Users/sjz/AppData/Local/Programs/Python/Python313/python.exe" -m west build ...
Kconfig 警告中止构建
问题:MCUX_ELS_PKC defined without a type 警告导致构建失败解决方案:修改 zephyr/soc/nxp/rw/Kconfig.defconfig:# 修改前 config MCUX_ELS_PKC default y # 修改后 config MCUX_ELS_PKC bool default y
我要赚赏金
