扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

NXP RW612 SDK 25.06.00-pvw2 Zigbee 源码编译实操

2小时前
82
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

NXP RW612(FRDM-RW612 开发板)的 Zigbee 源码编译,核心是在 Ubuntu 20.04 环境下搭建依赖工具链、通过 West 获取 SDK 源码,依次编译协调器(Coordinator)、MCU Bootloader 和路由器(Router),最终生成可烧录的.bin/.elf 文件。本文详解从环境准备到固件烧录的完整流程,包含版本要求、命令模板和常见错误处理,适用于 Zigbee 物联网项目开发。

1. 核心目标与环境准备

1.1 技术目标

  • 搭建兼容的编译环境(工具版本严格匹配);
  • 编译 Zigbee 协调器固件(支持网络管理);
  • 编译 MCU Bootloader(负责固件引导);
  • 编译 Zigbee 路由器固件(支持网络扩展);
  • 烧录固件到 FRDM-RW612 开发板,验证启动日志。

1.2 必备工具与版本要求

工具 最低版本 核心用途
CMake 3.24 项目构建配置
Ninja 1.12 快速编译工具
ARM GCC 10.3-2021.10 ARM 架构交叉编译
Python3 3.6 依赖管理与虚拟环境
West 1.2.0 SDK 与 Zigbee 源码下载
MCUXpresso SDK 25.06.00-pvw2 基础 SDK(含 Zigbee 协议栈)

2. 环境搭建步骤(Ubuntu 20.04 专属)

2.1 升级 CMake(默认版本不足)

# 下载CMake 3.24.0
cd ~/Downloads
wget https://cmake.org/files/v3.24/cmake-3.24.0.tar.gz
tar -zxvf cmake-3.24.0.tar.gz
cd cmake-3.24.0
# 编译安装
./bootstrap
make
sudo make install
# 验证版本
cmake --version  # 输出3.24.0即可

2.2 升级 Ninja(默认版本不足)

# 下载Ninja 1.12.1
cd ~/Downloads
wget https://distfiles.macports.org/ninja/ninja-1.12.1.tar.gz
tar -zxvf ninja-1.12.1.tar.gz
cd ninja-1.12.1
# 编译并安装
./configure.py --bootstrap
sudo cp ./ninja /usr/bin
# 验证版本
ninja --version  # 输出1.12.1即可

2.3 安装 ARM GCC 工具链

# 下载工具链(10.3版本)
cd ~/Downloads
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
# 解压到/opt目录
sudo tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt/

2.4 配置 Python3 环境

# 安装虚拟环境依赖
sudo apt install python3.8-venv  # Ubuntu 20.04默认Python3.8.10,符合要求
# 若安装失败,用aptitude重试
sudo apt-get install aptitude
sudo aptitude install python3.8-venv
# 安装lxml依赖(编译必需)
sudo apt-get install libxml2-dev libxslt1-dev python3-dev

2.5 安装 West 并下载 SDK

# 安装West
pip install -U west
# 初始化SDK(默认最新版25.06.00-pvw2)
west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests mcuxpresso-sdk
cd mcuxpresso-sdk
# 下载源码与依赖
west update
# 启用扩展命令
west config commands.allow_extensions true
  • 如需指定版本(如 25.03.00-pvw2),初始化命令替换为:
    west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests --mr release/25.03.00-pvw2 mcuxpresso-sdk
    

2.6 建立编译环境(关键配置)

(1)修改 sh 软链接(避免编译报错)

# 备份原有dash链接
sudo mv /bin/sh /bin/sh.orig
# 链接为bash
sudo ln -s /bin/bash /bin/sh
# 验证:输出lrwxrwxrwx 1 root root 9 ... /bin/sh -> /bin/bash
ls /bin/sh -al

(2)创建 Python 虚拟环境

cd ~/mcuxpresso-sdk
# 创建虚拟环境
python3 -m venv .venv
# 激活环境
source .venv/bin/activate
# 安装依赖(含lxml 5.2.2)
pip install -r requirements.txt

(3)配置环境变量

# 指定ARM GCC工具链路径
export ARMGCC_DIR=/opt/gcc-arm-none-eabi-10-2020-q4-major

3. Zigbee 源码编译(分模块执行)

3.1 编译 Zigbee 协调器(Coordinator)

cd ~/mcuxpresso-sdk
# 编译命令(指定开发板FRDM-RW612,自动配置)
west build -b frdmrw612 -p auto examples/wireless_examples/zigbee/coordinator/freertos
  • 编译成功产物(build 目录下):
    • zigbee_coordinator_freertos.bin(二进制固件)
    • zigbee_coordinator_freertos.elf(调试文件)
  • 关键日志:最后输出Linking C executable zigbee_coordinator_freertos.elf,无报错即成功。

3.2 编译 MCU Bootloader

cd ~/mcuxpresso-sdk
# 清理之前的构建目录
rm -rf build
# 编译命令
west build -b frdmrw612 -p always examples/ota_examples/mcuboot_opensource
  • 编译成功产物:mcuboot_opensource.elf(引导固件)
  • 关键日志:输出Linking C executable mcuboot_opensource.elf,内存占用正常(如 m_text 占 32.82%)。

3.3 编译 Zigbee 路由器(Router)

cd ~/mcuxpresso-sdk
# 清理构建目录
rm -rf build
# 编译命令
west build -b frdmrw612 -p auto examples/wireless_examples/zigbee/router/freertos
  • 编译成功核心产物:
    • zigbee_router_freertos.bin(基础固件)
    • zigbee_router_freertos_v1.signed.confirmed.bin(签名确认版,烧录首选)
    • zigbee_router_freertos.elf(调试文件)

4. 固件烧录(J-Link Commander)

4.1 烧录准备

  • 安装 J-Link Software:Windows PC 下载地址(含 Commander):https://www.segger.com/products/debug-probes/j-link/tools/j-link-commander/
  • 硬件连接:FRDM-RW612 开发板通过 J-Link 连接 PC。

4.2 分模块烧录命令

(1)烧录协调器固件

# 打开J-Link Commander,执行以下命令
loadbin "C:路径zigbee_coordinator_freertos.bin" 0x08000000
# 或烧录elf文件(含调试信息)
loadfile "C:路径zigbee_coordinator_freertos.elf"

(2)烧录路由器固件(需先烧 Bootloader)

# 1. 烧录MCU Bootloader
loadfile "C:路径mcuboot_opensource.elf"
# 2. 烧录路由器签名固件(地址0x18020000)
loadbin "C:路径zigbee_router_freertos_v1.signed.confirmed.bin" 0x18020000

4.3 验证启动

  • 烧录完成后,按开发板 Reset 键;
  • 串口终端(如 SecureCRT)连接开发板 UART波特率默认 115200,可看到 Zigbee 启动日志,说明固件正常运行。

5. 常见错误与解决方案

错误 1:ModuleNotFoundError: No module named 'openpyxl'

  • 解决方案:激活 Python 虚拟环境后安装:
    pip install openpyxl
    

错误 2:No module named 'crccheck'

  • 解决方案:
    pip install crccheck
    

错误 3:No module named'spsdk'

  • 解决方案:
    pip install spsdk  # 如需指定版本:pip install spsdk==1.10.0
    

错误 4:CMake 版本不匹配

  • 解决方案:重新执行 “升级 CMake” 步骤,确保cmake --version输出≥3.24。

6. 兼容的 ARM GCC 版本(可选)

除文中使用的 10.3 版本外,以下版本经测试可正常编译:
  • gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi.tar.xz
  • arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-eabi.tar.xz
  • arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
RW612 Zigbee 源码编译的核心是 “版本匹配 + 环境配置”:严格按要求升级 CMake、Ninja,通过 West 精准获取 SDK,分模块编译协调器、Bootloader 和路由器,最后用 J-Link 烧录验证。整个流程无需复杂开发,重点在于工具链版本兼容和环境变量配置,按本文命令执行即可快速产出可用固件。

相关推荐