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

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

不需要任何更改,看能不能编译下载,直接使用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 插件
前置条件
安装 MCUXpresso for VSCode 扩展
SEGGER JLink 已安装(路径 C:/Program Files/SEGGER/JLink_V894/)
配置文件
.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" } ] }配置文件 .vscode/mcuxpresso-tools.json 这个文件路径必须正确,否则 GDB 启动失败。
{ "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。
这次终于能在线调试了:

我们需要注意一些坑:
坑 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。
运行看一下串口:

我要赚赏金
