要搭的环境是NXP FRDM-MCXW72这块板子上的Zephyr。工具链用 VSCode + MCUXpresso 这套,这是NXP这两年主推的方案,比老的那种MCUXpresso IDE(Eclipse 魔改版)体验好不少。下面这些步骤我都是在Windows 10上进行的,装的路径里没有空格、没有中文。这点很重要,重要到我后边会反复念叨。
一、基本概念
一上来肯定蒙,Zephyr、NXP的MCUXpresso、VSCode插件、SDK、LinkServer啥啥分不清。VSCode:写代码的地方,不解释;
MCUXpresso Installer:NXP 的"全家桶安装器",用它装LinkServer、GCC for Arm这些;
MCUXpresso for Visual Studio Code 插件:装在VSCode里的,把NXP那一套调试和烧录的功能集成进VSCode;
Zephyr本身:通过west工具拉源码,跟上面NXP那套其实是独立的两条线,但是能配合着用;
LinkServer:板载调试器的驱动,MCXW72这块板子板载的LinkServer走的是CMSIS-DAP协议。
说白了,Zephyr和MCUXpresso之间的关系是:MCUXpresso帮你管NXP自家工具链(编译器、调试器、SDK),Zephyr自己管内核和构建。你只需要LinkServer那一部分就行了,其他不装也能跑。
二、装MCUXpresso Installer这一步别跳
去NXP官网下个MCUXpresso Installer(注意下Installer,不是IDE,那个IDE没法选组件)。打开之后会让你选要装啥,我建议这么勾:GCC for Arm Embedded:交叉编译器,必装;
LinkServer:调试器驱动,必装;
MCUXpresso for Visual Studio Code:这个就是装那个VSCode插件用的,勾上;
Zephyr的环境;

下一步选安装路径,我又得说一遍,路径里不能有空格和中文。我一般就装在 D:\nxp\ 下面。
装完之后会让你重启,重启不重启都行(我是没重启,下面那个步骤也没出问题)。
三、装VSCode和那几款插件
VSCode官网下个安装包装上,然后装这几个插件:C/C++(ms-vscode.cpptools):基本款;
Cortex-Debug:调试用的,特别好用;
Serial Monitor(ms-vscode.vscode-serial-monitor):看串口输出用;
MCUXpresso for Visual Studio Code:NXP 官方的;
装完MCUXpresso那个插件后,你 VSCode 左边栏会多一个 NXP的logo。点进去啥也不用干,先放着,回头 SDK管理在里头。从这里也可以直接打开MCUXpresso Installer:

四、准备一个工程
我们可以在插件中直接安装SDK:

安装之后加载例程:

五、构建
直接使用插件进行运行:
build成功:
六、烧录
板子插上USB,然后在VSCode插件中直接下载:

一直卡在这里,我们通过重新设定的方式重新配置.vscode内容也不行,感觉类似于一个是基于
Downloading file [G:/NXP/Repository/zephyr/build/zephyr/zephyr.bin]... J-Link: Flash download: Bank 1 @ 0x10000000: 1 range affected (24576 bytes) J-Link: Flash download: Total: 0.228s J-Link: Flash download: Program & Verify speed: 205 KB/s O.K. Verify successful.
七、看串口
MCXW72 这块板子板载了 USB-to-UART(很贴心,省了一根 CH340 的事),插上 USB 后会虚拟出一个 COM 口来。打开串口后你会看到:

八、调试
VSCode 里装好 Cortex-Debug 之后,调试其实挺简单的。先配一个launch.json:{ "version": "0.2.0", "configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceFolder}", "executable": "${workspaceFolder}/build/zephyr/zephyr.elf", "request": "launch", "type": "cortex-debug", "device": "MCXW72", "runToMain": true, "server": { "executable": "LinkServer", "arguments": [ "--probe", "--core-index=0", "--elf", "${workspaceFolder}/build/zephyr/zephyr.elf" ] } } ] }断点打上,F5 一下就能进 Zephyr 内核。你想看哪个变量、看哪个寄存器、看哪个调用栈,全都给你扒出来。你可能觉得Zephyr是搞软件的人在玩的东西,其实不是。Zephyr的devicetree跟你画原理图那是一一对应的。Zephyr改引脚不用动C代码,只改 devicetree overlay就行。这套环境装好之后,后面写应用那是真的爽。devicetree把硬件资源描述得清清楚楚,Kconfig让你按需裁剪,west把构建烧录都管了。MCXW72 这块板子本身设计得也挺好,板载LinkServer、板载USB-UART、Arduino兼容的排针,拿来做产品原型特别合适。
我要赚赏金
