尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Zephyr 接入 FRDM-MCXW70 无线开发板:从 Blob 获取、双核 NBU 烧录到 OpenThread 构建实战

Zephyr 接入 FRDM-MCXW70 无线开发板:从 Blob 获取、双核 NBU 烧录到 OpenThread 构建实战 Zephyr 接入 FRDM-MCXW70 无线开发板从 Blob 获取、双核 NBU 烧录到 OpenThread 构建实战【免费下载链接】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 RTOS 仓库中的 FRDM-MCXW70 板级文档 为主体系统讲解 NXP FRDM-MCXW70 无线开发板在 Zephyr 中的完整使用流程包括板级硬件特性、二进制 Blob 获取、LinkServer/J-Link 两种调试探针配置、OpenThread 应用构建、hello_world 烧录验证以及 BLE 功能所必需的 NBUNetwork Bus UnitCM3 协处理器镜像烧录方法。读完本文你将能够在 Zephyr 环境下独立完成 FRDM-MCXW70 的建链、烧录、调试与 BLE/802.15.4 双协议无线应用开发。板卡概览为多协议无线原型而生的 FRDM-MCXW70FRDM-MCXW70 是 NXP 推出的一款紧凑、可扩展的开发板用于快速评估 MCX W70 无线 MCU 并搭建原型。它可直接评估 MCX W70 对 Bluetooth LE、Zigbee、Thread 和 Matter 的多协议无线支持板载 MCU-Link 调试器、行业标准排针便于访问 MCU 的 I/O、加速度计、光传感器以及外部 SPI Flash。MCX W70x 家族的核心是一颗 96 MHz 的 Arm® Cortex®-M33 主核搭配独立的多协议无线电子系统支持 Matter、Thread、Zigbee 与 Bluetooth LE。该无线电子系统拥有独立的核心与内存可将主 CPU 从无线协议栈中解放出来专注运行主应用同时其独立固件还可通过升级以支持未来的无线标准——这正是 Zephyr 中该板卡采用CM33 主机 CM3 NBU双镜像架构的硬件基础。在 Zephyr 仓库中板卡标识符为frdm_mcxw70。从 frdm_mcxw70.yaml 可以看到 Zephyr 侧对该板的资源描述identifier: frdm_mcxw70 name: NXP FRDM-MCXW70 type: mcu arch: arm ram: 256 # 256 KB TCM RAM flash: 1536 # 1.5 MB 片上 Flash toolchain: - zephyr - gnuarmemb supported: - flash - gpio - pinctrl - uart - trng - crc - netif:openthread vendor: nxp该文件同时揭示了板级默认使能的功能集合GPIO、pinctrl、UART、TRNG真随机数发生器、CRC 校验以及netif:openthreadOpenThread 网络接口。RAM 256 KB、Flash 1536 KB 的声明与文档中的硬件参数一一对应。硬件规格与关键板载资源根据 板级文档 的 Hardware 章节FRDM-MCXW70 的核心硬件参数如下MCXW70 微控制器Arm Cortex-M33 内核最高运行频率 96 MHz片上 Flash1.5 MBTCM RAM256 KB板载调试器MCU-Link 调试器支持 CMSIS-DAP 协议深入 frdm_mcxw70_common.dtsi 可以进一步看清板级设备树中的外围资源布局用户 LED红PD2、绿PD3、蓝PC7对应user_led节点同时通过pwmleds节点暴露为 PWM LEDtpm_2/tpm_0驱动支持led0别名与 PWM 调光用户按键SW4PA0低电平有效并启用上拉别名sw0对应输入事件码INPUT_KEY_0串口LPUART0 与 LPUART1 均以 115200 波特率使能其中zephyr,console、zephyr,shell-uart、zephyr,bt-c2h-uart均指向lpuart1J28 接口802.15.4 无线电ieee802154节点指定lptmr1作为协议栈计数器Flash 控制器zephyr,flash指向flwFlash 线性窗口zephyr,flash-controller指向fmu_0。在 frdm_mcxw70.dts 中Flash 被划分为两个分区flw上的code分区0 地址起 1160 KB作为zephyr,code-partition与flash上的storage分区0x17a000 起 24 KB用于 NVS 等存储。默认 defconfig见 frdm_mcxw70_defconfig还开启了CONFIG_ARM_MPU与CONFIG_TRUSTED_EXECUTION_SECURE即默认按 TrustZone 安全侧配置运行。获取二进制 Blob蓝牙固件的前置条件由于 MCX W70 的蓝牙协议栈以二进制 Blob 形式随 NXP HAL 模块分发使用蓝牙功能前必须先获取这些 Blob。按 板级文档 的 Fetch Binary Blobs 章节执行west blobs fetch hal_nxp -l mcxw70其中-l选项接受一个 Python 正则表达式用于匹配每个 Blob 的路径。传入mcxw70可把下载范围限定为本板所需的 Blob而不是拉取所有 NXP Blob若省略该选项即west blobs fetch hal_nxp则会获取全部 NXP Blob。对于仅做 OpenThread802.15.4开发而不用 BLE 的场景可以跳过本步骤。编程与调试两种调试探针方案FRDM-MCXW70 的烧录与调试均依赖调试探针。板级默认使用板载 MCU-LinkCMSIS-DAP调试探针。从 board.cmake 可以看到 runner 的默认参数board_runner_args(linkserver --deviceMCXW70AC:FRDM-MCXW70) board_runner_args(jlink --deviceMCXW70AC --reset-after-load) include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)即 LinkServer 为默认 runner设备型号为MCXW70AC:FRDM-MCXW70J-Link 备用设备型号MCXW70AC并启用加载后复位。使用 LinkServer默认LinkServer 是此板的默认 runner支持出厂自带的 MCU-Link 固件。若默认板载调试电路固件曾被改动需要先按照 MCU-Link CMSIS-DAP 板载调试探针的说明重新烧写默认固件。烧写固件前需将板卡置于DFU 模式短接跳线JP8。使用 J-Link使用 J-Link 探针有两种方式将板载调试电路固件更新为 Segger J-Link 固件同样需先将板卡置于 DFU 模式短接跳线 JP8再按 MCU-Link J-Link 板载调试探针的说明刷入固件外接 J-Link 探针将外部 J-Link 调试探针连接到板卡的 10 针 SWD 连接器J26即可无需改动板载固件。两种方式都需要通过-r jlink显式指定 jlink runnerwest flash -r jlink串口控制台配置通过 USB 线将 PC 连接到板卡J28接口然后使用任意串口终端minicom、putty 等参数设置如下波特率Speed115200数据位Data8 bits校验位ParityNone停止位Stop bits1这与设备树中 LPUART 的current-speed 115200配置一致见 frdm_mcxw70_common.dtsi日志与控制台默认输出到该串口。应用构建OpenThread 示例板级文档给出了两个 OpenThread 应用的构建示例均通过-DEXTRA_CONF_FILEoverlay-ot.conf叠加 OpenThread 配置。例如构建 OpenThread echo_serverwest build -b frdm_mcxw70 samples/net/sockets/echo_server -DEXTRA_CONF_FILEoverlay-ot.conf构建 OpenThread echo_clientwest build -b frdm_mcxw70 samples/net/sockets/echo_client -DEXTRA_CONF_FILEoverlay-ot.conf在仓库的 samples/net/sockets/echo_server 中可以看到overlay-ot.conf正是面向 OpenThread 场景的配置叠加层配合板卡 yaml 中声明的netif:openthread支持即可让该板接入 Thread 网络。构建时请确保 Zephyr 环境已通过west初始化详见 Zephyr 官方 Getting Started 指南。应用烧录与首次运行验证以hello_world为例执行烧录west build -b frdm_mcxw70 samples/hello_world west flash打开串口终端并按下板卡上的RESET按键复位终端中应看到如下输出*** Booting Zephyr OS build v4.2.0-xxx-xxxx *** Hello World! frdm_mcxw70/mcxw706c调试会话hello_world 断点调试调试同样以hello_world为例但注意调试目标使用板级变体frdm_mcxw70/mcxw70acwest build -b frdm_mcxw70/mcxw70ac samples/hello_world west debug打开串口终端在调试器中单步执行应用终端中应出现*** Booting Zephyr OS build v4.2.0-xxx-xxxx *** Hello World! frdm_mcxw70/mcxw70ac这里mcxw70ac是 SoC 变体名对应 Kconfig.soc 中的SOC_MCXW70AC与器件型号MCXW70ACMFT也是 board.yml 中登记的 SoC 名称。NBU 烧录让 BLE 真正跑起来的第二步MCX W70 的双核架构意味着需要向板卡写入两个镜像一个是主机CM33侧的应用镜像另一个是 NBUCM3侧的无线电固件镜像。BLE 功能依赖二进制 Blob因此执行本节前请先完成上文 获取二进制 Blob 的步骤。主机CM33应用镜像的烧录方法见上文 应用烧录 小节NBU 镜像的烧录步骤如下安装blhost工具从 NXP 官网下载该工具用于向 NBU 烧写镜像进入 ISP 模式让 MCU 以 ISP 模式启动断开 FRDM-MCXW70 的所有电源按住SW2ISP按键不放同时将板卡连接到主机电脑的 USB 口松开 SW2 按键MCXW70 即以 ISP 模式启动如有需要重新接回外部电源。选择 NBU 镜像根据所需协议从板卡 Blob 目录zephyr workspace/modules/hal/nxp/zephyr/blobs/mcxw70/中选择例如纯 BLE 镜像或 BLE 802.15.4 的动态组合镜像执行烧录Windows 与 Linux 命令分别为# 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/mcxw70/目录选中的文件。更多细节可参考 NXP 的 blhost Users GuideMCUBLHOSTUG。常见问题排查与参考资源板级文档在 Troubleshooting 章节引入了 Zephyr 板级文档公共模板segger-ecc-systemview 与 board-footer 公共尾部其中包含通用的 J-Link/Segger SystemView 相关排障信息。若遇到调试器无法连接、固件异常等常见问题可优先确认是否已按上文要求进入 DFU 模式短接 JP8后再重刷调试器固件串口参数是否为 115200/8/N/1且连接的是 J28 接口BLE 应用是否已先行完成 Blob 获取与 NBU 镜像烧录。如需进一步了解 MCXW70 SoC 与 FRDM-MCXW70 板卡本身的硬件细节如引脚定义、原理图、数据手册可参考板级文档末尾引用的 NXP 官方资源MCXW70 SoC 官网页面与 FRDM-MCXW70 开发板官网页面。总结FRDM-MCXW70 在 Zephyr 中的开发流程可以归纳为一条清晰的链路获取 BlobBLE 场景→ 配置调试探针LinkServer 或 J-Link→ 构建 OpenThread/普通应用 → 烧录 CM33 主机镜像 → 通过 blhost 烧录 CM3 NBU 镜像。其中主机 NBU 双镜像是 MCX W70 多协议无线架构在 Zephyr 中的独特实践理解了它也就理解了 NXP 无线 MCU 系列在 Zephyr 生态中的通用开发范式。配合本仓库中的板级设备树frdm_mcxw70_common.dtsi、默认配置frdm_mcxw70_defconfig与 runner 参数board.cmake开发者可以快速上手 Matter、Thread、Zigbee 与 BLE 的无线原型开发。【免费下载链接】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),仅供参考
返回列表