Zephyr 开发板指南:NXP FRDM-MCXW71 无线多协议评估板的构建、烧录与调试
【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr
本文以 Zephyr 仓库中的 FRDM-MCXW71 板级文档 为主体,完整梳理这块面向 Matter / Thread / Zigbee / Bluetooth LE 多协议无线 MCU 的评估板的硬件资源、二进制固件获取、OpenThread 应用构建、MCU-Link 与 J-Link 烧录调试、串口控制台、ISP 模式、低功耗烧录以及 NBU 协处理器固件烧录等全流程操作,并结合仓库中的板级设备树、配置文件与 SOC 源码给出可验证的底层依据,帮助读者在这块板上快速完成 Zephyr 应用的开发与验证。
板卡概览:面向无线多协议原型的 FRDM-MCXW71
FRDM-MCXW71 是 NXP 推出的一款紧凑、可扩展的开发板,用于对 MCX W71 无线 MCU 进行快速原型验证。板载资源围绕多协议无线评估设计,包括蓝牙 LE、Zigbee、Thread 与 Matter 支持,同时提供板载 MCU-Link 调试器、行业标准排针以便访问 MCU 的 I/O、加速度计、光传感器以及外部 SPI Flash。
从仓库中的板级设备树 frdm_mcxw71.dts 可以看到,这块板对外暴露的能力相当完整:三色 PWM LED(通过pwmleds节点挂接tpm0)、用户按键(gpio_keys节点,SW2)、Arduino R3 排针映射(arduino_header节点)、I2C 加速度计(nxp,fxls8974)、SPI NOR Flash(mx25r6435fm2il0,64 Mbit)、FlexCAN 控制器局域网接口以及 IEEE 802.15.4 无线接口等,均可由 Zephyr 设备树直接驱动。
核心硬件规格
根据板级文档Hardware一节,核心硬件参数如下:
- MCXW71 Arm Cortex-M33 微控制器,主频最高 96 MHz
- 1 MB 片上 Flash 存储单元
- 128 KB TCM RAM
- 板载 MCU-Link 调试器(CMSIS-DAP)
值得强调的是 MCX W71x 系列的分工架构:96 MHz 的 Arm Cortex-M33 主核之外,还带有一个独立的多协议射频子系统(radio subsystem),该子系统拥有独立的核心与内存,支持 Matter、Thread、Zigbee 与 Bluetooth LE。这个独立射频子系统承担了无线协议栈的处理工作,从而把主 CPU 解放出来专心运行应用,同时允许通过固件升级支持未来的无线标准——这是 MCX W71 系列"可演进"特性的关键。
在 SOC 层面,仓库 Kconfig.soc 显示该系列包含 MCXW70AC、MCXW716C、MCXW727C 三个型号,而 FRDM-MCXW71 板对应的具体芯片是 MCXW716C(见 board.yml 中的socs: mcxw716c),具体型号字符串为MCXW716CMFTA(由 Kconfig.frdm_mcxw71 中的SOC_PART_NUMBER_MCXW716CMFTA选定)。
支持的 Zephyr 特性
板级文档通过zephyr:board-supported-hw::指令自动汇总本板支持的外设。结合 frdm_mcxw71.yaml 的supported字段,可以得到更完整的清单:
- 外设类:
adc、can、counter、dma、flash、flexio、gpio、i2c、pinctrl、pwm、regulator、spi、uart、watchdog、rtc、crc - 接口类:
arduino_i2c(Arduino R3 排针上的 I2C) - 网络接口:
netif:openthread(OpenThread 网络接口) - 架构:
arm - 内存:64 KB RAM(Zephyr 视角的 SRAM 可用量)、1024 KB Flash
板级默认配置见 frdm_mcxw71_defconfig,其中已启用CONFIG_ARM_MPU、CONFIG_TRUSTED_EXECUTION_SECURE(可信安全执行)、CONFIG_SERIAL、CONFIG_CONSOLE、CONFIG_UART_CONSOLE与CONFIG_GPIO。这意味着该板默认以 TrustZone 安全态运行,串口控制台开箱即用。
获取二进制固件(Binary Blobs)
与大多数 NXP 无线 SoC 一样,要使用蓝牙功能,frdm_mcxw71需要先获取专有二进制固件(binary blobs)。板级文档给出了明确的命令:
west blobs fetch hal_nxp -l "mcxw71"命令说明:
west blobs fetch hal_nxp负责拉取hal_nxp模块中的所有 NXP blob;-l选项接收一个 Python 正则表达式,用于对每个 blob 的路径进行匹配;- 传入
"mcxw71"可将下载范围限定为该板所需的 blob,而不是把全部 NXP blob 都下载下来; - 若省略该选项(即直接执行
west blobs fetch hal_nxp),则会获取全部 NXP blob。
这些 blob 在仓库中对应路径modules/hal/nxp/zephyr/blobs/mcxw71/(下述 NBU 固件烧录一节还会用到该目录)。
构建、烧录与调试
支持的烧录运行器(Runners)
板级文档通过zephyr:board-supported-runners::指令列出本板支持的烧录后端。从 board.cmake 可以确认两个 runner 均已配置:
board_runner_args(linkserver "--device=MCXW716CxxxA:FRDM-MCXW71") board_runner_args(jlink "--device=mcxw716" "--reset-after-load") include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)即:LinkServer(默认 runner)与J-Link。构建与烧录方式与 Zephyr 常规流程一致,例如:
west build -b frdm_mcxw71 samples/hello_world west flash配置调试探针
调试探针同时承担烧录与调试两种职责。本板默认配置使用MCU-Link CMSIS-DAP 板载调试探针。
使用 LinkServer
LinkServer 是本板的默认 runner,并支持出厂默认的 MCU-Link 固件。只有在板载调试电路固件被改动过的情况下,才需要按照 MCU-Link CMSIS-DAP 板载调试探针的说明重新烧写默认 MCU-Link 固件。要将板子置入DFU 模式以便烧写固件,短接跳线J5即可。
使用 J-Link
使用 J-Link 有两种方案:
- 更新板载调试电路固件:按 MCU-Link J-Link 板载调试探针的说明,将板载调试电路更新为 Segger J-Link 固件。要能够烧写固件,需要将板子置于DFU 模式,方法为短接跳线JP5。
- 外接 J-Link 探针:将外部 J-Link 调试探针连接到板上的 10-pin SWD 连接器(J12)。
无论哪种方案,都需要在 west 命令中指定-r jlink以使用 jlink runner,例如:
west flash -r jlink配置串口控制台
将 USB 线从 PC 连接到板上的J10接口,然后使用任意串口终端(minicom、putty 等)连接,参数如下:
- 波特率(Speed):115200
- 数据位(Data):8 bits
- 校验(Parity):None
- 停止位(Stop bits):1
板级设备树中,frdm_mcxw71.dts 将zephyr,console与zephyr,shell-uart都指向lpuart1(current-speed = <115200>),即 J10 对应的就是控制台 UART;同时zephyr,uart-pipe、zephyr,bt-c2h-uart与zephyr,uart-mcumgr指向lpuart0,供蓝牙 HCI 透传与 MCUmgr 使用,两个 UART 的分工在设备树层面已明确。
构建 OpenThread 应用
板级文档针对 OpenThread 场景给出了两个示例应用的构建方法,均通过-DEXTRA_CONF_FILE=overlay-ot.conf追加 OpenThread 配置覆盖文件:
Echo Server 示例:
west build -b frdm_mcxw71 samples/net/sockets/echo_server \ -DEXTRA_CONF_FILE=overlay-ot.confEcho Client 示例:
west build -b frdm_mcxw71 samples/net/sockets/echo_client \ -DEXTRA_CONF_FILE=overlay-ot.conf关于overlay-ot.conf:在 echo_client 示例 的 README 中说明,该覆盖配置用于启用 OpenThread 支持。对应测试用例(echo_client/tests.yaml)中也以EXTRA_CON<|begin▁of▁sentence|>## FILE="overlay-ot.conf"的方式集成 OpenThread 构建,验证了该配置路径的可用性。
烧录应用
以hello_world示例为例,注意目标板需要指定到具体的 MCU 型号frdm_mcxw71/mcxw716c:
west build -b frdm_mcxw71/mcxw716c samples/hello_world west flash打开串口终端并按下板上的RESET按键复位后,终端应显示如下信息:
*** Booting Zephyr OS build v3.7.0-xxx-xxxx *** Hello World! frdm_mcxw71/mcxw716c调试应用
仍以hello_world为例,使用debug目标启动调试会话:
west build -b frdm_mcxw71/mcxw716c samples/hello_world west debug打开串口终端,在调试器中单步执行应用,应能看到同样的输出:
*** Booting Zephyr OS build v3.7.0-xxx-xxxx *** Hello World! frdm_mcxw71/mcxw716c进入 ISP 模式(In-System Programming)
ISP 模式用于底层固件操作(例如下述的 NBU 烧录或低功耗镜像烧录)。将 MCU 引导至 ISP 模式的步骤如下:
- 断开 FRDM-MCXW71 板的所有电源。
- 按住板上的SW3按键不放,同时将板连接到主机电脑的 USB 端口。
- 松开SW3按键,MCX W72 MCU 即引导进入 ISP 模式(文档原文如此,实际对应 MCX W71 系列 MCU)。
- 如有需要,重新连接外部电源。
低功耗模式下的烧录
当应用启用了低功耗模式(CONFIG_PM=y)时,通过标准调试探针(MCU-Link 或 J-Link)烧录可能会失败。原因在于:MCU 会进入低功耗状态,此时 SWD 调试接口会变得无响应。
因此,要给运行低功耗镜像的板子烧录,需要先进入 ISP 模式(参见上文"进入 ISP 模式"一节),再通过 ISP 通道烧录镜像。
NBU 固件烧录
蓝牙功能需要先获取二进制固件(务必先完成"获取二进制固件"一节),并且需要在板上写入两个镜像:一个是主机(host,CM33 核)镜像,一个是NBU(Network Baseband Unit,CM3 核)镜像。
- 烧录应用镜像(CM33):参见上文"烧录应用"一节。
- 烧录 NBU 镜像的步骤如下:
- 从 NXP 官网安装
blhost工具,这是烧写 NBU 所需的命令行工具。 - 进入 ISP 模式(参见"进入 ISP 模式"一节)。
- 从板的 blobs 文件夹中按所需协议选择 NBU 镜像,例如仅 BLE 的镜像,或动态 BLE + 802.15.4 镜像:
<zephyr workspace>/modules/hal/nxp/zephyr/blobs/mcxw71/- 执行烧录命令:
Windows:
blhost.exe -p COMxx -- receive-sb-file <nbu-image>Linux:
./blhost -p /dev/ttyxx -- receive-sb-file <nbu-image>将COMxx/ttyxx替换为板子对应的串口,将<nbu-image>替换为从blobs/mcxw71/目录中选出的文件。
这套"双镜像"架构与前面提到的独立射频子系统一一对应:CM33 主机核运行 Zephyr 应用与无线协议栈的主机侧,而 CM3 NBU 核运行 NXP 提供的无线协议固件(radio stack firmware),二者共同协作完成蓝牙 / 802.15.4 等无线通信。
故障排查与参考资源
板级文档的 Troubleshooting 一节引入了通用排查内容(Segger ECC/SystemView 相关)与板级页脚信息(如文档版本、修订记录等)。在遇到构建、烧录或无线连接问题时,可先确认以下事项:
- 是否已执行
west blobs fetch hal_nxp -l "mcxw71"获取无线固件; - 烧录失败时,板子是否处于 ISP 模式(尤其是低功耗镜像);
- 使用 J-Link 时,是否已按对应方案完成板载固件更新或外接探针连接,并使用
-r jlink; - 串口参数是否为 115200-8-N-1。
如需深入了解 MCXW71 SoC 与 FRDM-MCXW71 板卡本身的更多资料,可查阅 NXP 官方 MCX W71X SoC 页面与 FRDM-MCXW71 开发板页面,以及 NXP 的 MCXW71 在线系统编程工具文档(AN14427)与 blhost 工具页面(以上均为板级文档 References 一节列出的官方资料)。
【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考