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

共1条 1/1 1 跳转至

【e起DIY】低功耗蓝牙温湿度计 -环境的搭建与测试

工程师
2026-06-01 16:37:39     打赏

        这次DIY活动指定使用的开发环境是Zephyr,实际上之前对NXP的开发板开发一般都使用MCUXpresso IDE或者VS Code,作为比较通用的开发环境,我们在VS code看到了对Zephyr的支持,使用的是MCUXpresso的插件:

f9bae257-ee1c-43ea-b4ef-43d50c8316eb.png

        我们直接通过插件进行的安装,整个Zephyr的开发环境非常大,所以下载安装的时间也比较长,然后就进入了反复下载安装的状态,每次都会有一点会失败,反正就是等,又失败的就安装就是,在经过多日的反复下载之后,终于这里显示成功了。接下来就是Zephyr SDK,同样的方法,通过插件进行安装就可以了,这种安装方式最省事,看了老师的安装方法,说实话有点头大,主要是不会用命令行,出现问题也不知道怎么处理。 接下来就是进行任务的下一部分,到这里实际上完成了环境搭建任务的一半,我们还要验证一下,通过插件加载demo程序:

bb5245fb-e3e6-484c-b5a4-5ea672bb5fc9.png

        不需要任何更改,看能不能编译下载,直接使用MCUXpresso的插件编译下载是失败的,要不就是时间很长看来对应的支持还是有点问题的,我们尝试修改编译和下载的配置,这里我们使用了AI辅助,发现它直接调用的jlink进行调试下载,让其帮我们修复了一下工程的调试配置。

        硬件:NXP FRDM-MCXW72 开发板(Cortex-M33)

        探针:J-Link MCU-Link(SN: 1061516471) 

        SDK:Zephyr SDK 1.0.1 

        工具链:CMake + Ninja + MCUXpresso for VSCode 扩展 + SEGGER JLink 8.94

整体工作流

┌─────────────────┐   ┌──────────────┐   ┌────────────────────┐
│ 1. CMake 配置    │ → │ 2. 编译 build │ → │ 3. 烧录 + 调试      │
│   (仅首次/改配置) │   │  (ninja/all)  │   │ (F5 或 JLink CLI)  │
└─────────────────┘   └──────────────┘   └────────────────────┘
↓                     ↓                       ↓
output: debug/        debug/zephyr/         flash + halt@main
zephyr.elf

产物路径固定在:${workspaceFolder}/debug/zephyr/zephyr.elf VSCode + MCUXpresso 插件

  1. 前置条件

  • 安装 MCUXpresso for VSCode 扩展

  • SEGGER JLink 已安装(路径 C:/Program Files/SEGGER/JLink_V894/)

  1. 配置文件

  2. .vscode/launch.json
    {
    "configurations": [
    {
    "type": "mcuxpresso-debug",
    "name": "Debug (J-Link MCU-Link)",
    "request": "launch",
    "cwd": "${workspaceFolder}",
    "executable": {
    "elf": "${workspaceFolder}/debug/zephyr/zephyr.elf"
    },
    "preLaunchTask": "CMake: build",
    "stopAtSymbol": "main",
    "probeSerialNumber": "1061516471",
    "isAttach": false,
    "skipBuildBeforeDebug": false,
    "gdbInitCommands": [
    "set remotetimeout 600",
    "set debug-file-directory",
    "set non-stop off"
    ],
    "gdbServerConfigs": {
    "linkserver": {},
    "segger": {
    "device": "MCXW727C_M33_0",
    "serial": "1061516471",
    "interface": "SWD",
    "speed": "1000",
    "serverPath": "JLinkGDBServerCL"
    },
    "pemicro": {}
    },
    "showDevDebugOutput": "none"
    }
    ]
    }
  3. 配置文件 .vscode/mcuxpresso-tools.json 这个文件路径必须正确,否则 GDB 启动失败。

  4. {
    "version": "25.3",
    "toolchainPath": "C:/Users/sjz/zephyr-sdk-1.0.1/gnu/arm-zephyr-eabi",
    ...
    }

        toolchainPath 必须指向含 bin/arm-zephyr-eabi-gdb.exe 的目录。 4. 操作步骤 1.首次或修改 prj.conf 后:Ctrl+Shift+P → CMake: configure(preset: debug) 2.打开 运行和调试 面板(Ctrl+Shift+D) 3.下拉选 "Debug (J-Link MCU-Link)" 4.按 F5 → 自动 build → 烧录 → 停在 main。

        这次终于能在线调试了:

eecde82f-19da-4760-a816-a90bdc82f59b.png

        我们需要注意一些坑: 

        坑 1:设备名错误 错误信息:

Failed to get index for device name 'MCXW727C'.
The selected device "MCXW72" is unknown to this software version.
Device "ARM7" selected.   ← 默认 fallback

        根因:JLink 设备库里 frdm_mcxw72 的芯片条目是 MCXW727C_M33_0(带 M33 核后缀),不是 MCXW72 也不是 MCXW727C。 查设备库方法:

查看 JLinkDLL.ini 列出的所有设备
cat "C:/Users/sjz/AppData/Roaming/SEGGER/JLinkDLL.ini"

        在 [Device] 段里搜 MCXW 即可。 

        坑 2:GDB 路径错误 错误信息:

Could not start GDB. Check that the file exists, and it can be manually started.
Error: spawn C:\Users\sjz\zephyr-sdk-1.0.1\arm-zephyr-eabi\bin\arm-zephyr-eabi-gdb.exe ENOENT

根因:.mcuxpresso-tools.json 的 toolchainPath 少了 gnu/ 这一层目录。zephyr-sdk 1.0.1 的 toolchain 实际路径是:

C:/Users/sjz/zephyr-sdk-1.0.1/gnu/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb.exe

        修复:把 toolchainPath 改成 C:/Users/sjz/zephyr-sdk-1.0.1/gnu/arm-zephyr-eabi。

运行看一下串口:

540fca5f-8b29-454d-9366-9a296a490800.png





关键词: 环境     搭建     测试    

共1条 1/1 1 跳转至

回复

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