这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【e起DIY】低功耗蓝牙温湿度计过程贴-环境搭建与验证

共2条 1/1 1 跳转至

【e起DIY】低功耗蓝牙温湿度计过程贴-环境搭建与验证

高工
2026-05-10 20:14:08     打赏

一、认识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

65582fce-819c-4d7d-b265-e99954733dc7.png

        如果看到版本号,比如上图,说明安装成功。PATH就是告诉电脑“Python 安装在哪里”,不勾选就找不到。

2. 安装 Git

        Git是管理源码的工具,Zephyr用它下载源码和模块。        步骤:            打开Git官网下载Git。            安装时默认选项即可,但要选择“Use Git from the command line and also from 3rd-party software”。        验证:

       

git --version

79a0e5f6-ec89-452f-b445-ef0c5f583043.png3. 安装 VSCode

        Visual Studio Code是开发环境。这是个应用软件,大家应该都接触过,安装完就可以用到方方面面的插件了。        步骤:            下载并安装VS Code。            打开VCode,安装插件:                    C/C++(Microsoft)                    CMake Tools                    Python                    DeviceTree                    Zephyr Project(可选)

三、安装Zephyr必备工具1. West(Zephyr 的项目管理工具)

python -m pip install --user west

        89a6330c-a5ff-43c1-b8e2-dbb9b63fef94.png

        如上图,我们通过:

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

        d024325f-a5ff-4a09-8758-402fdd8859e1.png

        West 可以帮你下载、更新 Zephyr 项目和依赖。

2. CMake(项目编译工具)

        下载CMake并安装,勾选 “Add CMake to system PATH”        验证:
cmake --version
421ff930-9478-42ca-a36f-0e15df242573.png

三、初始化Zephyr

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

4daf5eb4-4877-4dbb-9acc-4fd7ea4ed568.png

        west update下载全部源码,实际上会更新很多内容,很可能一次也无法全部成功,也需要多来几次。        接下来导出 Zephyr 配置:
west zephyr-export
d6261756-080a-41ee-bf36-4fac58c2c9f9.png         完成这里的步骤接下来就是下载对应的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 清单定义


        有一些工具链实际上电脑上以前安装的也是可以用的,我们在将环境配置、工具链安装、交叉编译验证以及通过 MCU-Link/J-Link 调试接口完成程序烧录验证的流程再进行一下汇总。

四、软硬件平台

类别项目内容
硬件开发板NXP FRDM-MCXW72 (MCXW727C)

MCUArm Cortex-M33, 96MHz

Flash2MB on-chip Flash

RAM256KB TCM

调试器MCU-Link (板载) / J-Link MCU-Link
软件操作系统Windows 10

Zephyr 版本v4.4.0 (NXP Downstream)

Python3.13.2

CMake3.30.0

工具链GNU Arm Embedded 14.2.rel1
我们这次下载直接使用MCU-Link 调试,已经板载了对应的资源使用 USB Type-A 转 Type-C 数据线连接 PC 与开发板 J14 接口:
  • 同时支持调试和串口通信

  • 无需额外安装驱动(自动识别)

  • 串口参数:115200 baud, 8N1

工具链配置

        项目使用 MCUXpresso Tools 自带的 GNU Arm Embedded Toolchain。

工具链路径

组件路径
Arm GCCC:/Users/sjz/.mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi
CMakeC:/Users/sjz/.mcuxpressotools/cmake-3.30.0-windows-x86_64
NinjaC:/Users/sjz/.mcuxpressotools/ninja
DTCC:/Users/sjz/.mcuxpressotools/dtc-msys2/tools/usr/bin/dtc.exe

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 系统环境变量中添加:
变量名
ZEPHYR_BASEnxp_zephyr/nxp_zephyr/zephyr
ZEPHYR_TOOLCHAIN_VARIANTgnuarmemb
GNUARMEMB_TOOLCHAIN_PATHC:/Users/sjz/.mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi

五、工程创建工程目录结构

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

生成文件

文件路径说明
zephyr.elfbuild/zephyr/zephyr.elfELF 可执行文件(含调试信息)
zephyr.binbuild/zephyr/zephyr.bin纯二进制文件
zephyr.hexbuild/zephyr/zephyr.hexIntel HEX 格式

七、串口验证

使用USB Type-A转Type-C数据线连接PC与开发板USB接口。串口接收如下:

1269285f-b39a-4262-bb1f-f6dc8e21db2b.png

八、常见问题与解决方案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





关键词: 环境     搭建     验证    

助工
2026-05-10 22:33:14     打赏
2楼

看起来好复杂 ……


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]