2. i.MX 95硬件平台与开发环境搭建

i.MX 95是NXP面向边缘AI视觉应用推出的异构多核处理器,其硬件平台与开发环境的搭建质量,直接决定了后续模型部署、图像采集与推理调优的效率。本节围绕EVK板卡接口、电源与启动模式、Yocto/BSP构建、交叉编译工具链以及串口与网络调试环境五个方面展开,目标是让读者能够独立完成一块i.MX 95 EVK从开箱到可远程登录、可编译、可部署的完整开发环境。

2.1 EVK板卡接口与硬件资源

i.MX 95 EVK(Evaluation Kit)通常以核心板加底板的形式提供。核心板上集成i.MX 95 SoC、LPDDR5内存、eMMC以及PMIC电源管理芯片;底板上则引出各类外设接口。对于边缘AI视觉工程,需要重点关注的接口包括:

  • MIPI CSI-2摄像头接口:用于连接图像传感器,是视觉系统的输入通道,通常支持多路摄像头输入。
  • MIPI DSI/HDMI显示接口:用于本地预览或调试显示。
  • 千兆以太网口:用于远程登录、文件传输和网络推理服务。
  • USB 3.0/2.0接口:用于U盘、摄像头或调试设备。
  • MicroSD卡槽:用于从SD卡启动系统,是开发阶段最常用的启动介质。
  • 调试串口(UART):通过USB转串口芯片引出,用于查看启动日志和登录控制台。
  • JTAG接口:用于底层调试和烧录。

在实际操作前,应先确认板卡版本、丝印标识与配套原理图,避免接口误接。尤其是摄像头排线的方向和电源跳线,接错可能损坏器件。

2.2 电源与启动模式配置

i.MX 95 EVK一般通过12V直流电源适配器供电,板上有电源指示灯和复位按键。上电前需要确认电源跳线处于正确位置,并检查是否有短路风险。

i.MX 95的启动模式由BOOT_MODE引脚和启动配置引脚共同决定。常见启动方式包括:

  • SD卡启动:开发阶段最常用,便于反复烧写和替换系统镜像。
  • eMMC启动:量产或固化系统时使用。
  • 串行下载模式:用于通过USB将镜像烧录到板载存储。

启动模式通常通过拨码开关或跳线帽设置。以SD卡启动为例,需要将BOOT_MODE设置为内部启动,并将启动设备选择拨到SD卡对应位置。上电后,如果串口终端能看到U-Boot打印信息,说明启动模式配置正确。

建议在首次上电时只连接电源和调试串口,确认U-Boot能正常启动后,再逐步接入网线、摄像头等外设,便于定位问题。

2.3 Yocto/BSP构建

NXP为i.MX 95提供基于Yocto Project的BSP(Board Support Package)。Yocto通过配方(recipe)和层(layer)机制组织软件包,最终生成可直接烧录的镜像文件。构建流程大致如下:

  1. 安装依赖工具,如git、repo、gcc、make、python3等。
  2. 使用repo工具同步NXP官方BSP仓库,获取Yocto元数据。
  3. 执行环境初始化脚本,设置构建目录和配置文件。
  4. 选择目标机器(如imx95evk)和镜像类型(如core-image-minimal或fsl-image-qt5)。
  5. 运行bitbake命令开始构建,首次构建耗时较长,需保证网络和磁盘空间充足。

构建完成后,在tmp/deploy/images目录下会生成镜像文件,包括U-Boot、内核、设备树和根文件系统。使用dd命令或NXP提供的烧录工具将镜像写入SD卡,即可启动系统。

# 示例:同步BSP并初始化构建环境
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
repo sync
DISTRO=fsl-imx-xwayland MACHINE=imx95evk source imx-setup-release.sh -b build-imx95
bitbake core-image-minimal

上述命令中的分支、版本号和镜像名称仅为示例,实际应以NXP官方发布的最新BSP文档为准。

2.4 交叉编译工具链

在x86主机上为ARM64架构的i.MX 95编译程序,需要使用交叉编译工具链。NXP BSP中已经集成了对应的工具链,也可以通过Yocto生成SDK,获得独立的交叉编译环境。

生成SDK的典型命令为:

bitbake core-image-minimal -c populate_sdk

生成的SDK安装脚本位于deploy/sdk目录下,执行安装后,通过source环境脚本即可使用aarch64-poky-linux-gcc等工具。交叉编译时需要注意:

  • 指定目标架构为aarch64。
  • 使用SDK中的sysroot,确保头文件和库与目标系统一致。
  • 对于依赖OpenCV、TensorFlow Lite等库的程序,应先在Yocto中将这些库加入镜像或SDK。

2.5 串口与网络调试环境配置

串口是调试i.MX 95最基础也最可靠的手段。将板卡调试串口通过USB线连接到主机后,Linux下通常识别为/dev/ttyUSB0,Windows下识别为COM端口。使用minicom、picocom或PuTTY等工具,配置波特率115200、8位数据位、无校验、1位停止位,即可看到U-Boot和内核启动日志。

# Linux下使用picocom连接串口
sudo picocom -b 115200 /dev/ttyUSB0

网络调试方面,建议将板卡与主机接入同一交换机或路由器。板卡启动后,通过串口执行ifconfig或ip addr查看IP地址。若使用DHCP,板卡会自动获取IP;若需要静态IP,可修改/etc/network/interfaces或使用nmcli配置。

确认网络连通后,可通过SSH远程登录板卡,使用scp传输文件,或通过NFS挂载主机目录,方便快速迭代程序。对于边缘AI视觉应用,还可以在板卡上启动HTTP或gRPC服务,由主机端发送图像或请求,验证推理结果。

调试环境搭建完成的判断依据:串口能稳定登录系统;板卡能ping通主机;主机能通过SSH登录板卡;交叉编译出的可执行文件能在板卡上正常运行。
i.MX 95 EVK 开发环境连接与数据流 主机(x86_64 Ubuntu) Yocto / BSP 构建 bitbake → 镜像 + SDK 交叉编译工具链 aarch64-poky-linux-gcc 串口终端 picocom / minicom 115200 网络调试 SSH / SCP / NFS SD卡镜像烧录 / 部署 i.MX 95 EVK i.MX 95 SoC 多核异构 + NPU 存储与启动 SD卡 / eMMC / U-Boot 调试串口 UART → USB转串口 千兆以太网 RJ45 → 交换机/路由器 MIPI CSI-2 摄像头输入 串口日志 / 控制台 SSH / SCP / NFS 镜像烧录 / 部署 验证闭环:串口登录 → 网络连通 → SSH登录 → 交叉编译程序运行