FRDM-IMX8MPLUS快速入门

上次修改时间: May 27, 2025支持 FRDM i.MX 8M Plus开发板

本文档内容

  • 1

    开箱即用
  • 2

    获取软件
  • 3

    构建、运行
  • 4

    Developer Experience (开发人员体验)

1. 开箱即用

下面描述了启动FRDM-IMX8MPLUS的步骤。

开发套件包含:

  • FRDM-IMX8MPLUS板,搭载u-blox模块MAYA-W276-00B,配置恩智浦的Wi-Fi 6三频IW612
  • 线缆:组装,USB 3.0,Type-C公头转Type-A公头
  • 线缆:组装,USB 3.0,Type-C公头转Type-C公头
  • 软件:在eMMC中烧写的Linux BSP镜像
  • 快速入门指南

按照演示视频所示步骤,采用FRDM-IMX8MPLUS开始开发应用。如需了解更多信息,请访问i.MX 8M Plus应用处理器文档

1.1 熟悉板

Figure 1. FRDM-IMX8MPLUS Top

Figure 1. FRDM-IMX8MPLUS Top

Figure 2. FRDM-IMX8MPLUS Bottom

Figure 2. FRDM-IMX8MPLUS Bottom

1.2 从eMMC启动

FRDM-IMX8MPLUS配备一个预构建的Linux二进制演示镜像,被烧写到eMMC上。无需修改内部的二进制文件,从eMMC启动将提供具有某些功能的默认系统,用于在Linux上构建其他应用。

如需了解有关恩智浦Embedded Linux®的更多详情,请继续阅读后续章节。

1.3 连接USB调试线缆

将随附的USB-Type C公头转Type-A公头线缆连接至调试UART端口J19,然后将线缆的另一端连接到主机。

主机上将显示两个UART连接。 第一个端口用于A53内核系统调试。

如果您不熟悉终端应用,请先查看以下任一教程,再继续步骤1.4:Minicom教程Tera Term教程PuTTY教程

要在Linux下进行调试,请确保已安装CH342F Linux驱动程序 。

1.4 启动开关设置

SW5 [1-4]是启动配置开关。默认情况下,启动设备是eMMC/uSDHC3。

启动设备 SW5-1 SW5-2 SW5-3 SW5-4
从内部熔丝 0 0 0 0
USB串行下载 0 0 0 1
uSDHC3 8位eMMC 5.1 0 0 1 0
uSDHC2 4位SD3.0 0 0 1 1
NAND 8位单器件256页 0 1 0 0
NAND 8位单器件512页 0 1 0 1
QSPI 3B读取 0 1 1 0
QSPI Hyperflash 3.3V 0 1 1 1
ecSPI Boot 1 0 0 0

1.5 连接HDMI显示器

将HDMI线缆的一端连接至HDMI连接器J16。将该线缆的另一端连接至HDMI显示面板。

1.6 板启动

将随附的USB-Type C公头转Type-C公头线连接至电源连接器J2,另一端连接至USB PD适配器。

此板默认设置为从eMMC启动。处理器开始从eMMC执行可启动镜像。信息在Arm® Cortex®-A53的串行控制台中打印。当板启动时,您会看到看到HDMI显示器的左上角出现4只企鹅,然后会在左上角看到Linux终端图标,在右上角看到定时器。恭喜,已顺利启动并运行。

2. 获取软件

i.MX Linux板级支持包(BSP)包含一系列二进制文件、源代码和支持文件,可用来启动特定i.MX开发平台上的Embedded Linux镜像。

当前Linux二进制演示文件版本请参见Linux下载页面i.MX软件和开发工具的Linux部分中的i.MX Linux文档包提供其他文档。

2.1 概述

FRDM-IMX8MPLUS支持从eMMC和SD卡启动。

本入门指南仅概述了将Linux BSP镜像烧写到SD卡的几种方法。经验丰富的Linux开发人员可根据需要探究其他选项。

2.2 下载恩智浦Linux BSP预构建镜像

FRDM-IMX8MPLUS的最新预建镜像可在FRDM i.MX 8M Plus开发板上获取。

预构建的恩智浦Linux二进制演示镜像提供典型系统和基本的功能集,用于使用和评估处理器。无需修改系统,用户就可以评估硬件接口、测试SoC功能并运行用户空间应用。

2.3 使用Universal Update Utility (UUU)烧写恩智浦Linux BSP镜像

除了“开箱即用”章节的连接外,使用USB线缆将USB3.0 OTG (J3)连接至主机。

给板断电。参考“1.4 启动开关设置”章节,配置板在串行下载协议(SDP)模式启动。

根据主机使用的操作系统,将Linux BSP镜像传输到SD卡的方式可能会有所不同。从下面的选项中进行选择,获取详细指导:

3. 构建、运行

本节简要介绍了如何为FRDM-IMX8MPLUS构建Yocto BSP镜像、如何添加Matter支持以及如何构建Debian发行版镜像。

3.1 FRDM-IMX8MPLUS Yocto BSP

FRDM-IMX8MPLUS BSP版本基于i.MX SW 2024 Q3版本和Yocto Project 5.0 (Scarthgap)。要从源代码构建FRDM-IMX8MPLUS镜像,先查阅《i.MX Yocto Project用户指南》,熟悉Yocto Project和Yocto Build。然后,请按照以下步骤为FRDM-IMX8MPLUS构建镜像。

  1. 下载i.MX SW 2024 Q3 BSP版本:
  2. $ 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
  3. 将FRDM-IMX8MPLUS层集成到Yocto代码库中:
  4. $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git 
  5. Yocto Project设置:
  6. $ cd ${MY_YOCTO}
    $ MACHINE=imx8mpfrdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx8mp
  7. 构建镜像:
  8. $ bitbake imx-image-full
  9. 烧写SD卡镜像:
  10. $ zstdcat imx-image-full-imx8mpfrdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && sync

    或使用uuu将镜像烧写到SD卡:

    $ uuu -b sd_all imx-image-full-imx8mpfrdm.rootfs.wic.zst
  11. 将启动开关SW5[1:4]更改为“0011”以选择SD卡启动,插入SD卡并启动FRDM-IMX8MPLUS板

3.2 FRDM-IMX8MPLUS Matter支持

FRDM-IMX8MPLUS支持Matter。要添加Matter支持,请按照以下步骤将Matter层纳入Yocto Build。

  1. 下载i.MX SW 2024 Q3 BSP版本:
  2. $ 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
  3. 下载i.MX Matter Yocto层:
  4. $ cd ${MY_YOCTO}/sources/meta-nxp-connectivity
    $ git remote update
    $ git checkout imx_matter_2024_q3
  5. 将FRDM-IMX8MPLUS层集成到Yocto代码库中:
  6. $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git 
  7. Yocto Project设置:
  8. $ cd ${MY_YOCTO}
    $ MACHINE=imx8mpfrdm-matter DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-matter-setup.sh bld-xwayland-imx8mp
  9. 构建镜像:
  10. $ bitbake imx-image-multimedia

3.3 FRDM-IMX8MPLUS Debian

FRDM-IMX8MPLUS支持Debian 12操作系统。i.MX Debian Linux SDK发行版组合了恩智浦的内核和引导加载程序与Debian发行版用户空间镜像,其中包括:

  • 基于Debian的rootfs;
    1. Debian Base(基本软件包)
    2. Debian Server(更多不带GUI桌面的软件包)
    3. Debian Desktop(带GNOME GUI桌面)
  • Linux内核
  • BSP组件
  • 各种应用(图形、多媒体、网络、连接、安全和AI/ML)

有关恩智浦Debian Linux SDK发行版的更多详情,请查阅面向i.MX和Layerscape的恩智浦Debian Linux SDK发行版页面。

3.4 Debian快速入门

要为FRDM-IMX8MPLUS创建带Debian的SD卡,请按照以下步骤操作。

  1. 将flex-installer下载到Linux主机:
  2. $ wget http://www.nxp.com/lgfiles/sdk/lsdk2412/flex-installer
    $ chmod +x flex-installer
    $ sudo mv flex-installer /usr/bin
  3. 将SD卡插入Linux主机,并按以下方式安装镜像:
  4. # format SD card
    $ flex-installer -i pf -d /dev/sdb
    # automatically download and install images into SD card
    $ flex-installer -i auto -d /dev/mmcblk1 -m imx8mpfrdm
  5. 将SD卡插入FRDM-IMX8MPLUS板,并按以下方式安装额外的软件包:
  6. 1) 通过DHCP或手动设置以太网网络接口。
    $ dhclient -i end0
    2) 设置正确的系统时间,例如:
    $ date -s "22 Nov 2024 09:00:00"
    3) 为GNOME GUI桌面版安装额外的软件包:
    $ debian-post-install-pkg desktop
    4) 或为不带GUI桌面的服务器版安装额外的软件包
    $ debian-post-install-pkg server
    5) 安装完成后,运行reboot(重启)命令启动Debian桌面/服务器系统。

3.5 使用Flexbuild构建Debian镜像

要使用Flexbuild为FRDM-IMX8MPLUS构建Debian镜像,请按照以下步骤操作。

  1. 搭建构建环境:
  2. $ git clone https://github.com/nxp/flexbuild
    $ cd flexbuild && ./setup.env
    #Continue to run commands below in case you need to build in Docker due to lack of Ubuntu 22.04 or Debian 12 host
    $ bld docker
    $ source setup.env
  3. 使用Flexbuild构建镜像:
  4. $ bld -m imx8mpfrdm
  5. Flexbuild用法如下:
  6. 要构建镜像的单个部分,请查看以下Flexbuild用法命令列表:
    $ bld uboot -m imx8mpfrdm (compile u-boot image for imx8mpfrdm)
    $ bld linux (compile linux kernel for all arm64 i.MX machines)
    $ bld bsp -m imx8mpfrdm (generate BSP firmware)
    $ bld boot (generate boot partition tarball including kernel, dtb, modules, distro bootscript for iMX machines)
    $ bld multimedia (build multimedia components for i.MX platforms)
    $ bld rfs -r debian:server (generate Debian server rootfs)
    $ bld apps -r debian:server (compile apps against runtime dependencies of Debian server RootFS)
    $ bld merge-apps -r debian:server (merge iMX-specific apps into target Debian server RootFS)
    $ bld packrfs -r debian:server (pack and compress target debian server rootfs)

4. Developer Experience (开发人员体验)

为了帮助各种技能水平的用户加速开发,恩智浦提供了丰富的示例应用,以展示该平台的各种功能和性能。

4.1 Application Code Hub (应用代码中心)

工程师可以通过应用代码中心  (ACH)资料库轻松查找由恩智浦专家开发的微控制器和处理器软件示例、代码片段和应用软件包及演示。在代码中心,可轻松快速且集中地查找微控制器和处理器应用。

ACH提供筛选和搜索选项,让您能够快速找到特定的应用。在Git功能的加持下,您可以在用户开发环境中轻松导入并使用应用。

如需了解ACH的更多详细信息,请访问此链接

要查找FRDM-IMX8MPLUS的可用示例应用,请在“器件系列”中选择 “i.MX”,如下所示。

Figure 3. FRDM-IMX8MPLUS Application Code Hub

选择每个示例应用以查看其详细信息。

Figure 4. FRDM-IMX8MPLUS Application Code Hub

要获取每个示例应用的源代码,请点击顶部的“访问GitHub”按钮,访问恩智浦GitHub中的代码库。

Figure 5. FRDM-IMX8MPLUS Application Code Hub

4.2 面向i.MX应用处理器的GoPoint

面向i.MX应用处理器的GoPoint是一款用户友好型应用,可启动Linux BSP预构建的应用,为用户提供卓越的开箱即用体验,并可亲身体验i.MX SoC的功能。GoPoint不仅突出了高级功能,还提供了实用的实现解决方案,并在GitHub上提供了应用的源代码和构建配方。

如需了解GoPoint的更多详细信息,请访问此链接

对于FRDM-IMX8MPLUS,默认情况下GoPoint包含在BSP版本中。要打开GoPoint GUI启动器,请在FRDM-IMX8MPLUS启动后,按屏幕左上角显示的恩智浦标识,如下所示。

Figure 6. FRDM-IMX8MPLUS GoPoint

会显示可用的示例应用以及每个应用的屏幕截图图标。选择示例应用时,右侧会显示此示例应用的简要说明。要启动当前选定的应用,请点击“启动演示”按钮。

应用启动后,可以通过点击启动器中的“停止当前演示”按钮(应用启动后出现)强制退出。

有关每个应用用法的详细信息,请参阅《i.MX应用处理器GoPoint用户指南》

Figure 7. FRDM-IMX8MPLUS GoPoint

调试终端设置

在Linux中调试终端

在Windows中调试终端

Cortex-M7使能

FRDM-IMX8MPLUS有一个运行频率高达800MHz的通用Arm® Cortex®-M7内核,可用于实时和低功耗处理。本节将指导开发人员如何为Cortex-M7内核构建、运行和调试程序。

下载SDK

Cortex-M7 MCUXpresso SDK通过MCUXpresso Web Builder工具分发。  MCUXpresso SDK包含一组灵活的外设驱动程序,旨在加速和简化嵌入式应用的开发。除了外设驱动程序外,MCUXpresso SDK还提供了广泛而丰富的应用示例,涵盖从基本外设用例示例到演示应用的所有内容。MCUXpresso SD还包含可选的RTOS集成,如FreeRTOS和Azure RTOS以及设备协议栈,以支持基于设备的快速开发。

要获取FRDM-IMX8MPLUS的MCUXpresso SDK,请按照以下步骤操作。

  1. 访问MCUXpresso SDK Builder
  2. 点击“Select Development Board” (选择开发板)。
  3. Figure 9. FRDM-IMX8MPLUS MCUXpresso SDK
  4. 搜索“MIMX8ML8xxxLZ”并选择它。
  5. Figure 10. FRDM-IMX8MPLUS MCUXpresso SDK
  6. 选择SDK发布版本2.16,然后按“BUILD SDK”按钮。
  7. Figure 11. FRDM-IMX8MPLUS MCUXpresso SDK
  8. 选择要包含在SDK中的主机操作系统、工具链和中间件,然后按“BUILD SDK”按钮。
  9. Figure 12. FRDM-IMX8MPLUS MCUXpresso SDK
  10. 在SDK构建完成后,在“仪表板”页面点击“下载”。
  11. Figure 13. FRDM-IMX8MPLUS MCUXpresso SDK
  12. 下载带有文档的SDK。
  13. Figure 14. FRDM-IMX8MPLUS MCUXpresso SDK
  14. 下载SDK包后,解压该包。请查看docs文件夹中的发布说明和“Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf”文档,了解有关Cortex-M7 MCUXpresso SDK的详情。

构建Cortex-M7程序

请查看SDK包中docs文件夹中的“Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf”文档,了解如何设置工具链和构建cortex-M7程序。

运行Cortex-M7程序

在Cortex-M7上运行编译的程序有两种方法:U-Boot bootaux和Linux remoteproc。使用bootauxremoteproc启动了Cortex-M7内核后,可以使用remoteproc停止Cortex-M7内核,但仅用于调试目的。在生产系统中,不建议从Linux OS停止Cortex-M7内核。在启动Cortex-M7内核前,需确保其UART端口已在调试终端中打开。

  1. 在U-Boot中使用bootaux
  2. 在该示例中,Cortex-M7程序首先在U-Boot中从SD卡的分区1加载。然后Cortex-M7内核通过bootaux命令启动。最后,Cortex-A53内核上的Linux通过boot命令启动。请确保Cortex-M7程序二进制文件以FAT分区格式存储在SD卡的分区1中。在该示例中,二进制文件“hello_world.bin”被用作示例。

    板上电后,在Cortex-A53调试终端中按任意键进入U-Boot。然后使用以下命令启动Cortex-M7内核。

    u-boot=> fatload mmc 1:1 0x48000000 hello_world.bin
    u-boot=> cp.b 0x48000000 0x7e0000 20000
    u-boot=> bootaux 0x7e0000

    如果Cortex-M7内核使用此二进制文件成功启动,则应在Cortex-M7调试终端中打印以下日志:

    Figure 15. FRDM-IMX8MPLUS PuTTY

    然后,如需要,运行以下命令启动Linux。

    u-boot=> run prepare_mcore
    u-boot=> boot
  3. 在Linux中使用remoteproc
  4. 在此示例中,Cortex-M7程序从Linux的rootfs加载,并通过remoteproc启动。这里使用二进制文件“imx8mp_m7_TCM_hello_world.elf”作为示例。

    u-boot=> setenv fdtfile imx8mp-frdm-rpmsg.dtb
    u-boot=> run prepare_mcore
    u-boot=> boot

    在Linux启动后,在Cortex-A53的调试终端中使用下面的命令来启动Cortex-M7内核。

    root@imx8mpfrdm:~# echo /lib/firmware/imx8mp_m7_TCM_hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware
    root@imx8mpfrdm:~# echo start > /sys/class/remoteproc/remoteproc0/state

    如果Cortex-M7内核使用此二进制文件成功启动,则应在Cortex-M7调试终端中打印以下日志:

    Figure 15. FRDM-IMX8MPLUS PuTTY

在NPU上部署ML模型

FRDM-IMX8MPLUS配备神经处理单元(NPU),其最高运算性能可达2.3TOPS,用于加速神经网络机器学习推理。如需了解有关NPU硬件架构的详情,请参阅《i.MX 8M Plus应用处理器参考手册》。如需了解有关NPU软件架构的详情,请参阅《i.MX机器学习用户指南》

模型量化

要利用NPU进行加速,神经网络算子必须量化为8位(无符号或有符号)或16位(有符号)。对于模型量化,请下载最新的eIQ工具包并查看用户指南。

模型推理

要评估NN模型在NPU上的性能,最简单的方法是使用LinuxBSP中的benchmark_model工具。该工具使用随机数据作为输入,并给出指定运行次数的平均推理时间。以下是一个示例:

root@imx8mpfrdm:~# /usr/bin/tensorflow-lite-2.16.2/examples/benchmark_model --graph=/usr/bin/tensorflow-lite-2.16.2/examples/mobilenet_v1_1.0_224_quant.tflite --external_delegate_path=/usr/lib/libvx_delegate.so

如果运行成功,调试终端中将打印如下日志:

Figure 16. FRDM-IMX8MPLUS Model Inference

Figure 16. FRDM-IMX8MPLUS Model Inference

通过在命令中设置--enable_op_profiling=truebenchmark_model工具还可以提供算子性能分析报告。如需了解benchmark_model用法的详情,请使用--help查看。

root@imx8mpfrdm:~# export VIV_VX_ENABLE_CACHE_GRAPH_BINARY="1"
root@imx8mpfrdm:~# export VIV_VX_CACHE_BINARY_GRAPH_DIR=`pwd`

关于如何使用C++和Python编写代码在NPU上运行模型推理,请参考GoPoint中的示例应用。

部署PyTorch模型

除了Tensorflow,PyTorch也是构建NN模型的主流深度学习框架。关于如何将PyTorch模型转换为TensorFlow Lite模型,请查阅应用笔记AN13769:《使用ONNX将PyTorch模型部署到恩智浦支持的推理引擎》

使用HiFi 4 DSP

使用HiFi 4 DSP

FRDM-IMX8MPLUS配备了运行频率高达800MHz的Cadence® Tensilica® HiFi 4 DSP,该器件是一个高度优化的音频处理器,可高效执行音频和语音编解码器以及前后处理模块。

要对DSP进行测试,最简单的方法是使用以下命令播放MP3音频文件:

root@imx8mpfrdm:~# gplay-1.0 --audio-sink="alsasink device=sysdefault:CARD=wm8962audio" MP3_EXAMPLE_FILE.mp3

gplay-1.0将自动选择DSP作为音频解码器,并通过wm8962声卡播放MP3文件。应能在连接到3.5mm耳机插孔的耳机听到音频。

如需了解关于DSP用法的更多信息,请参阅《i.MX DSP用户指南》

除了音频信号处理,该DSP还可通过编程用于更通用的场景。关于如何使用DSP运行机器学习推理,请参阅应用笔记AN13336:《i.MX 8M Plus HiFi4 TFLM ML使能》。关于如何在DSP上运行 Zephyr RTOS,请参阅应用笔记AN13970:《在Cadence Tensilica HiFi 4 DSP上运行Zephyr RTOS》

使用VPU

使用VPU

FRDM-IMX8MPLUS配备包含解码器和编码器的Hantro视频处理单元(VPU),支持H.264、H.265、VP8、VP9解码和H.264/H.265编码。

要对VPU进行测试,最简单的方法是使用以下命令播放MP4视频文件:

root@imx8mpfrdm:~# gplay-1.0 MP4_EXAMPLE_FILE.mp4

gplay-1.0将自动选择VPU作为视频解码器,并在Weston桌面上播放MP4文件。如果连接了HDMI显示器,应能看到视频画面。

如需了解关于如何在应用中使用VPU API的更多详细信息,请参阅《i.MX VPU API参考手册》

使用ISP

使用ISP

FRDM-IMX8MPLU有两个摄像头图像信号处理器(ISP)。当使用单摄像头时,两个ISP可支持12MP@30fps或4Kp45。当使用两个摄像头时,每个ISP可支持最高1080p80。

要测试ISP,可将OS08A20摄像头与FRDM-IMX8MPLUS搭配使用。

u-boot=> setenv fdtfile imx8mp-frdm-os08a20.dtb
u-boot=> boot

在FRDM-IMX8MPLUS启动且连接了OS08A20摄像头后,请运行下面的命令打开OS08A20的摄像头预览:

root@imx8mpfrdm:~# gst-launch-1.0 -v v4l2src device=/dev/video3! "video/x-raw,format=YUY2,width=3840,height=2160" ! queue ! waylandsink

如果HDMI显示器上正确显示出摄像头预览画面,则证明ISP正常运行。如需了解关于ISP用法的详情,请参阅《i.MX 8M Plus摄像头和显示器指南》

使用GPU

使用GPU

FRDM-IMX8MPLUS配备一个GC7000超精简图形处理单元(GPU),其运算速度可达16 GFLOPS (高精度),支持OpenGL ES 1.1/2.0/3.0/3.1、OpenCL 3.0、OpenVG 1.1、OpenGL 4.0、EGL 1.5、Vulkan 1.1。

要测试GPU性能,最简单的方法是运行glmark2-es2-wayland基准测试,命令如下:

root@imx8mpfrdm:~# glmark2-es2-wayland --fullscreen

除此之外,在FRDM-IMX8MPLUS的默认rootfs文件系统中,在/opt/imx-gpu-sdk/文件夹下还安装了许多其他GPU示例应用。可以直接运行该二进制文件,或通过GoPoint启动应用。

如需了解关于GPU用法的更多信息,请参阅《i.MX Graphics用户指南》

信息安全与完整性

信息安全与完整性

系统安全与完整性始终是产品开发中最为关键的考虑要素之一。

FRDM-IMX8MPLUS支持安全启动功能,有效防止在设备启动序列中未经授权的软件执行。有关安全启动功能的详细说明,请参阅应用笔记AN4581:《在支持HABv4的设备上实现i.MX安全启动》

快速启动

快速启动

在某些应用场景下,对设备启动时间有严格要求,即设备必须在限定时间内完成启动过程。

为优化启动时间,FRDM-IMX8MPLUS在U-Boot中支持Falcon模式。Falcon模式是U-Boot的一项功能,它允许SPL直接启动Linux内核,从而实现快速启动。它完全跳过了U-Boot的加载和初始化,从而减少在引导加载程序中花费的时间。

关于如何启用Falcon模式以及进一步优化启动时间,请参阅应用笔记AN14093:《通过Falcon模式及内核优化在i.MX 8M和i.MX 9上实现快速启动》