3. eIQ工具链安装与环境搭建

在 MCX 系列 MCU 上做边缘 AI 部署,工具链不是“装一个软件”那么简单,而是要把模型侧、编译侧、板级运行侧三条链路打通。NXP 的 eIQ 体系里,eIQ Portal 负责模型导入、量化与转换,eIQ Toolkit 负责把模型编译成可在 MCU 上运行的推理库与算子代码,MCUXpresso SDK 提供芯片外设、DSP/NPU 驱动与 RTOS 支持,MCUXpresso IDE 或 VS Code 则承担工程管理、交叉编译与调试。本节按“先装什么、再配什么、最后怎么验证”的顺序,把这条链路落到可执行的配置上。

一、先理清四个组件的关系与安装顺序

很多初学者会先装 IDE,再回头找模型工具,结果版本对不上。建议按下面的依赖关系推进:先装 MCUXpresso IDE(自带 GCC 交叉编译工具链),再装 MCUXpresso SDK(与芯片型号匹配),然后装 eIQ Toolkit(含模型转换与推理引擎),最后装 eIQ Portal(图形化建模与量化)。eIQ Portal 与 eIQ Toolkit 的版本要匹配,例如 eIQ Toolkit 1.12.x 通常对应 eIQ Portal 1.12.x;SDK 版本建议使用与 IDE 同期的 2.14 或 2.15 系列,避免 CMSIS-NN 与 TensorFlow Lite Micro 接口不一致。

MCX eIQ 边缘 AI 工具链安装与依赖关系 主机侧(Windows / Ubuntu) ① MCUXpresso IDE 11.9+ ② MCUXpresso SDK 2.15.x ③ eIQ Toolkit 1.12.x ④ eIQ Portal 1.12.x 含 arm-none-eabi-gcc 交叉编译器 模型侧(eIQ Portal) · 导入 .tflite / .onnx 模型 · 校准集量化(INT8) · 精度评估与算子检查 · 导出 eIQ 可编译模型 输出:model_int8.tflite 编译侧(eIQ Toolkit) · 模型解析与图优化 · 生成 C 数组 / 算子库 · 链接 CMSIS-NN 内核 · 输出静态库 .a 输出:libeiq_model.a 目标侧(MCX 开发板) · Cortex-M33 + NPU/DSP · TFLite Micro 运行时 · 摄像头 / 麦克风输入 · 推理结果串口输出 验证:推理耗时 / 精度 模型 编译 库 链接 SDK 工程

二、MCUXpresso IDE 与 SDK 的安装配置

从 NXP 官网下载 MCUXpresso IDE 安装包(Windows 版约 1.2 GB),安装路径不要含中文和空格,例如 C:\nxp\MCUXpressoIDE_11.9.0。安装完成后首次启动会提示选择工作区,建议单独建一个 D:\mcx_ws。IDE 自带 arm-none-eabi-gcc,可在 Window → Preferences → MCUXpresso IDE → Build Tools 中确认路径,一般位于 ide/tools/bin 下。

SDK 的获取有两种方式:一是通过 IDE 内置的 SDK Builder 在线生成,二是从官网下载对应 MCX 型号的 SDK 压缩包。以 MCX-N947 为例,在 SDK Builder 中勾选 CMSIS-NN、TensorFlow Lite Micro、eIQ、DSP、FreeRTOS 等组件,生成后解压到 D:\nxp\SDK_2.15.0_MCX-N947。然后在 IDE 中通过 File → Import → MCUXpresso SDK Project 导入,IDE 会自动识别 SDK 路径并建立索引。

若使用 VS Code 而非 IDE,需额外安装 MCUXpresso for VS Code 扩展,并在 settings.json 中配置 mcuxpresso.sdk.path 与 mcuxpresso.toolchain.path,否则无法调用交叉编译器。

三、eIQ Toolkit 与 eIQ Portal 的安装

eIQ Toolkit 提供命令行与图形两种入口,安装包约 800 MB,安装时需勾选 eIQ Model Tool、eIQ Inference、TensorFlow Lite Micro 组件。安装完成后,在终端执行 eiq-toolkit --version 应返回类似 1.12.0 的版本号。若提示找不到命令,需把 <安装目录>\bin 加入系统 PATH。

eIQ Portal 是独立的桌面应用,安装后首次启动需要登录 NXP 账号并激活许可证。进入主界面后,先创建工程,选择目标芯片 MCX-N947,再导入模型。Portal 的量化流程分三步:加载浮点模型 → 指定校准数据集(建议 100~200 张代表性图片)→ 执行 INT8 量化并查看每层误差。量化完成后导出 .tflite 文件,供 Toolkit 编译。

# eIQ Toolkit 命令行编译示例
eiq-toolkit compile \
  --model model_int8.tflite \
  --target mcxn947 \
  --output ./eiq_out \
  --enable-cmsis-nn \
  --arena-size 131072

# 输出目录结构
eiq_out/
  ├── model_data.cc      # 模型权重 C 数组
  ├── model_ops.cc       # 算子注册
  ├── libeiq_model.a     # 静态库
  └── eiq_config.h       # 推理配置头文件

四、交叉编译工具链与调试环境准备

交叉编译工具链的核心是 arm-none-eabi-gcc,MCUXpresso IDE 已内置,但若在命令行或 CI 中使用,建议单独安装 ARM GNU Toolchain 13.2 版本,并确保 arm-none-eabi-gcc --version 可正常输出。编译一个 eIQ 工程时,关键编译选项包括:-mcpu=cortex-m33 -mfloat-abi=hard -mfpu=fpv5-sp-d16,以及链接时加入 -leiQ_model -lCMSIS_NN。

调试环境方面,MCX 开发板通常使用板载 MCU-Link 调试器。在 IDE 中新建 Debug Configuration,选择 MCU-Link Debugger,接口为 SWD,时钟设为 4 MHz。下载前确认目标芯片供电正常,若出现 Unable to connect to target,先检查复位引脚与 SWD 接线,再尝试降低时钟到 1 MHz。调试时可在推理函数入口打断点,观察 arena 内存占用与每层输出张量的形状,判断模型是否被正确加载。

常见问题:eIQ Toolkit 编译报 Unsupported operator: FULLY_CONNECTED,通常是模型量化时未启用 CMSIS-NN 内核,或算子版本与 TFLite Micro 不匹配。解决方法是回到 Portal 重新导出,并在 Toolkit 中显式加上 --enable-cmsis-nn。

五、环境验证:从模型到板端的一次闭环

安装完成后,建议用一个最小示例验证整条链路。以 MobileNetV1 0.25 为例,输入 96×96×3 的 INT8 图像,在 Portal 中量化后导出,再用 Toolkit 编译成静态库,最后在 IDE 中新建工程,调用推理接口并打印耗时。若串口输出 inference time: 18 ms 且分类结果与 PC 端一致,说明工具链已正确打通。此时再逐步替换为自己的模型和数据集,就能把环境问题与模型问题分开定位。

组件推荐版本关键配置项验证方式
MCUXpresso IDE11.9.0工作区路径、GCC 路径新建空工程可编译
MCUXpresso SDK2.15.0CMSIS-NN、TFLite Micro导入示例工程无报错
eIQ Toolkit1.12.0PATH、arena-size命令行输出版本号
eIQ Portal1.12.0许可证、目标芯片量化导出成功
交叉编译器GCC 13.2mcpu、mfpu、链接库生成 .elf 可下载