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 接口不一致。
二、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 路径并建立索引。
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 内存占用与每层输出张量的形状,判断模型是否被正确加载。
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 IDE | 11.9.0 | 工作区路径、GCC 路径 | 新建空工程可编译 |
| MCUXpresso SDK | 2.15.0 | CMSIS-NN、TFLite Micro | 导入示例工程无报错 |
| eIQ Toolkit | 1.12.0 | PATH、arena-size | 命令行输出版本号 |
| eIQ Portal | 1.12.0 | 许可证、目标芯片 | 量化导出成功 |
| 交叉编译器 | GCC 13.2 | mcpu、mfpu、链接库 | 生成 .elf 可下载 |