1
开箱即用2
获取软件3
构建并运行4
Developer Experience (开发人员体验)下面描述了启动FRDM-IMX93的步骤。
开发套件包含:
跟着演示视频,采用FRDM-IMX93开始开发应用。如需了解更多信息,请访问i.MX 93应用处理器文档。
Something went wrong! Please try again.
FRDM-IMX93配备一个预构建的恩智浦Linux二进制演示镜像,烧写在eMMC上。无需修改内部的二进制文件,从eMMC启动将提供具有某些功能的默认系统,用于在Linux上构建其他应用。
如需了解有关恩智浦Embedded Linux®的更多详情,请继续阅读后续章节。
Something went wrong! Please try again.
将随附的USB Type-C线连接到调试UART端口P16,然后将线的另一端连接到主机。
主机上将显示两个UART连接。 第一个端口用于Cortex-A55内核,第二个端口用于Cortex-M33内核系统调试。
如果不熟悉终端应用,请先查看以下任一教程,再继续步骤1.4:在Linux中调试终端,在Windows中调试终端。
要在Linux下进行调试,请确保已安装CH342F Linux驱动程序 。
Something went wrong! Please try again.
要查看随镜像二进制文件提供的用户界面,请通过HDMI连接器P5连接显示器。
Something went wrong! Please try again.
请参阅下表进行相应配置。
Something went wrong! Please try again.
将电源线连接到电源连接器P1。
此板默认设置为从eMMC启动。处理器开始从eMMC执行可启动镜像。然后,U-Boot执行应自动开始。
信息在Arm® Cortex®-A55的串行控制台中打印。如果不停止U-boot流程,就会继续启动内核。
当板启动时,您会看到显示器的左上角出现两只企鹅,然后在左上角看到Linux终端图标,在右上角看到定时器。
恭喜,已顺利启动并运行。
Something went wrong! Please try again.
要登录FRDM-IMX93,请使用“root”作为i.MX Linux操作系统的默认登录用户名,无需密码。使用以下命令在内核中加载Wi-Fi和蓝牙模块。
root@imx93frdm:~# modprobe moal mod_para=nxp/wifi_mod_para.conf
root@imx93frdm:~# ifconfig mlan0 up
root@imx93frdm:~# modprobe btnxpuart
root@imx93frdm:~# hciconfig hci0 reset 如需了解更多信息,请访问:FRDM-IMX93连接培训 。
Something went wrong! Please try again.
i.MX Linux板级支持包(BSP)包含一系列二进制文件、源代码和支持文件,可用来启动特定i.MX开发平台上的Embedded Linux镜像。
Linux二进制演示文件的最新版本可在FRDM i.MX 93开发板上找到。i.MX软件和开发工具的Linux部分中的i.MX Linux文档包提供其他文档。
FRDM-IMX93支持从eMMC和SD卡启动。
本入门指南仅概述了将Linux BSP镜像烧写到SD卡的几种方法。经验丰富的Linux开发人员可根据需要探究其他选项。
Something went wrong! Please try again.
FRDM-IMX93的最新预建镜像可在FRDM i.MX 93开发板上获取。
预构建的恩智浦Linux二进制演示镜像提供典型系统和基本的功能集,用于使用和评估该处理器。无需修改系统,用户就可以评估硬件接口、测试SoC功能并运行用户空间应用。
Something went wrong! Please try again.
除了“开箱即用”章节的连接外,使用USB线将USB1 (P2)连接到主机。
拔下电源适配器。参考“1.5启动开关设置”章节,配置板在串行下载协议(SDP)模式启动。
根据主机使用的操作系统,将Linux BSP镜像传输到SD卡的方式可能会有所不同。从下面的选项中进行选择,获取详细指导:
如需下载最新的stable文件,请访问UUU GitHub页面。如需要有关UUU的进一步帮助,请参阅本详细教程。
uuulibusb1(通过apt-get或任何其它资源包管理器)在默认情况下,本流程将镜像烧写到SD卡中。查看UUU GitHub页面,了解如何将镜像烧写到其他设备。
打开终端应用并将目录更改为uuu及FRDM-IMX93最新Linux发行版所在位置。向uuu文件添加执行权限并执行。uuu等待USB设备连接。
$ chmod a+x uuu
$ sudo ./uuu -b sd_all imx-image-full-imx93frdm.rootfs.wic.zst
确认FRDM-IMX93启动模式已切换至串行下载模式,然后打开该板,uuu开始将镜像烧写到SD卡。
完成后,为板和终端断电。如果需要进一步帮助来配置板从SD卡启动,请参阅1.5 启动开关设置。
如需下载最新的stable文件,请访问UUU GitHub页面。如果需要有关UUU的进一步帮助,请参阅本详细教程。
uuu.exe在默认情况下,本流程将镜像烧写到SD卡中。查看UUU GitHub页面,了解如何将镜像烧写到其他设备。
打开命令提示应用,转到uuu.exe文件及FRDM-IMX93最新Linux版本所在位置。
uuu.exe -b sd_all imx-image-full-imx93frdm.rootfs.wic.zst确认FRDM-IMX93启动模式已切换至串行下载模式,然后打开该板,uuu开始将镜像拷贝到板上。
完成后,关闭板和命令提示应用。如果需要进一步帮助来配置板从SD卡启动,请参阅1.5 启动开关设置。
Something went wrong! Please try again.
Torizon是一个易于使用的工业Linux平台,可简化Linux设备的开发和维护。FRDM-IMX93板支持该操作系统Common Torizon:这是一个开源最小化Embedded Linux镜像,除了包含基本服务外,还具备优化的容器运行时和组件,用于安全离线和远程无线更新(OTA)、设备监测和远程访问等。
下载Common Torizon二进制 镜像。
采用Yocto 根据源代码构建Common Torizon。可以下载Yocto层,执行构建设置并启动构建流程。
将Common Torizon烧写到FRDM-IMX93上,请参考具体的烧写步骤 。
烧写后,可使用以下凭证通过终端登录:
之后,要求您创建一个密码。
要评估一些演示应用,可使用Torizon Cloud 。为此,需要创建一个Torizon Cloud账号,并将设备配置到账号中。
要了解具体操作方法,请参阅下一节。
Something went wrong! Please try again.
成功将Common Torizon烧写到FRDM-iMX93后,就可以开始使用Torizon Cloud。它允许对操作系统和应用进行安全的远程在线和离线更新,执行远程设备监测、远程访问、设备群管理以及漏洞监测等功能。
如需了解有关Torizon 的详情,请参考Torizon文档 。
要开始使用Torizon Cloud,需要创建一个账号 ,并将配备Common Torizon的FRDM-IMX93添加到账号中。
请按照分步指南 操作。
对Torizon有任何疑问,可通过toradex技术社区 或邮件 与我们联系。
Something went wrong! Please try again.
本节简要介绍了如何为FRDM-IMX93构建Yocto BSP镜像、如何添加Matter支持以及如何构建Debian发行版镜像。
FRDM-IMX93 BSP基于i.MX SW 2024 Q3版本和Yocto Project 5.0 (Scarthgap)。要从源代码构建FRDM-IMX93镜像,请先查阅《i.MX Yocto Project用户指南》,熟悉Yocto Project和Yocto Build。然后,请按照以下步骤为FRDM-IMX93构建镜像。
$ 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 $ cd ${MY_YOCTO}/sources
$ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git$ MACHINE=imx93frdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx93$ bitbake imx-image-full$ zstdcat imx-image-full-imx93frdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && sync或使用uuu将镜像烧写到SD卡上:
$ uuu -b sd_all imx-image-full-imx93frdm.rootfs.wic.zstSomething went wrong! Please try again.
FRDM-IMX93支持Matter。要添加Matter支持,请按照以下步骤将Matter层纳入Yocto Build。
$ 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 $ cd ${MY_YOCTO}/sources/meta-nxp-connectivity
$ git remote update
$ git checkout imx_matter_2024_q3$ cd ${MY_YOCTO}/sources
$ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git$ MACHINE=imx93frdm-iwxxx-matter DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-matter-setup.sh bld-xwayland-imx93$ bitbake imx-image-multimediaSomething went wrong! Please try again.
FRDM-IMX93支持Debian 12操作系统。i.MX Debian Linux SDK发行版组合了恩智浦的内核和引导加载程序与Debian发行版用户空间镜像,其中包括:
有关恩智浦Debian Linux SDK发行版的更多详情,请查阅《面向i.MX和Layerscape的恩智浦Debian Linux SDK发行版》。
要为FRDM-IMX93创建带Debian的SD卡,请按照以下步骤操作:
$ wget http://www.nxp.com/lgfiles/sdk/lsdk2412/flex-installer
$ chmod +x flex-installer
$ sudo mv flex-installer /usr/bin# 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 imx93frdm$ dhclient -i end0$ date -s "22 Nov 2024 09:00:00"$ debian-post-install-pkg desktop$ debian-post-install-pkg server要使用Flexbuild为FRDM-IMX93构建Debian镜像,请按照以下步骤操作。
$ git clone https://github.com/nxp/flexbuild
$ cd flexbuild && source 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$ bld -m imx93frdm要构建镜像的单个部分,请查看以下Flexbuild用法命令列表
$ bld uboot -m imx93frdm (compile u-boot image for imx93frdm)
$ bld linux (compile linux kernel for all arm64 i.MX machines)
$ bld bsp -m imx93frdm (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)Something went wrong! Please try again.
为了加速不同技能水平用户的开发进程,FRDM-IMX93提供了丰富的示例应用,用于展示其各项特性和功能,重点展示通过板载神经网络处理单元(NPU)加速的机器学习相关用例。
目前FRDM-IMX93上提供9个示例应用:
工程师可以通过应用代码中心(ACH)资料库轻松查找由恩智浦专家开发的微控制器和处理器软件示例、代码片段和应用软件包及演示。在代码中心,可轻松快速且集中地查找微控制器和处理器应用。
ACH提供筛选和搜索选项,让您能够快速找到特定的应用。在Git功能的加持下,您可以在用户开发环境中轻松导入并使用应用。
如需了解有关应用代码中心(ACH)的更多详细信息,请访问此链接。
要查找FRDM-IMX93的可用示例应用,请在“器件系列”中选择 “i.MX”,如下所示。
选择每个示例应用以查看其详细信息。
要获取每个示例应用的源代码,请点击顶部的“访问GitHub”按钮,访问恩智浦GitHub中的代码库。
Something went wrong! Please try again.
面向i.MX应用处理器的GoPoint是一款用户友好型应用,可启动随Linux BSP提供的预构建应用,为用户提供卓越的开箱即用体验,让他们亲身体验i.MX SoC的各项功能。GoPoint不仅突出了高级功能,还提供了实用的实现解决方案,并在GitHub上提供了应用的源代码和构建配方。
如需了解GoPoint的更多详细信息,请访问此链接。
对于FRDM-IMX93,默认情况下GoPoint包含在BSP发布中。要打开GoPoint GUI启动器,请在FRDM-IMX93启动后,按屏幕左上角显示的恩智浦标识,如下所示。
会显示可用的示例应用以及每个应用的屏幕截图图标。选择示例应用时,右侧会显示此示例应用的简要说明。要启动当前选定的应用,请点击“启动演示”按钮。应用启动后,可以通过点击启动器中的“停止当前演示”按钮(应用启动后出现)强制退出。
有关每个应用用法的详细信息,请参阅《i.MX应用处理器GoPoint用户指南》。
Something went wrong! Please try again.
串行转USB驱动程序请参见CH342F Linux驱动程序 。
在Linux主机的命令提示符上,运行以下命令,确定端口号:
ls /dev/ttyCH343USB*第一个数字代表Arm® Cortex®-A55。
使用以下命令安装和运行Minicom程序:
sudo apt-get install minicomsudo minicom /dev/ttyCH343USB * -s
按照图中所示配置Minicom,并退出配置。
FRDM-IMX93上的WCH USB串行芯片枚举两个串行端口。假设端口分别为COM11、COM12。第一个端口(COM11)用于Arm® Cortex®-A55的串行控制台通信。串行转USB驱动程序请参见CH342F Windows驱动程序 。
注:要确定i.MX板虚拟COM端口的端口号,请打开Windows设备管理器并在“端口”(COM和LPT)中查找“USB串行端口”。
Tera Term是一款开源终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口发送的信息。
PuTTY是一款广受欢迎的终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口发送的信息。
FRDM-IMX93搭载一个运行频率高达250MHz的通用Arm® Cortex®-M33内核,可用于实时和低功耗处理。本节将指导开发人员如何为Cortex-M33内核构建、运行和调试程序。
注:Yocto build已经在rootfs /lib/firmware/文件夹下包含了几个Cortex-M33示例镜像,用于快速评估和验证。如果使用示例镜像,开发人员可以跳到“运行Cortex-M33程序”一节。
Cortex-M33 MCUXpresso SDK通过MCUXpresso Web Builder工具 分发。MCUXpresso SDK包含一组灵活的外设驱动程序,旨在加速和简化嵌入式应用的开发。除了外设驱动程序外,MCUXpresso SDK还提供了广泛而丰富的示例应用,涵盖从基本外设用例示例到演示应用的所有内容。MCUXpresso SDK还包含可选的RTOS集成,如FreeRTOS和Azure RTOS以及设备协议栈,以支持基于设备的快速开发。
要获取FRDM-IMX93的MCUXpresso SDK,请按照以下步骤操作。
请查看SDK包中docs文件夹中的“Getting Started with MCUXpresso SDK for MCIMX93-EVK.pdf”文档,了解如何设置工具链和构建Cortex-M33程序。
在Cortex-M33上运行编译程序有两种方法:U-Boot bootaux和Linux remoteproc。使用bootaux或remoteproc启动了Cortex-M33内核后,可以使用remoteproc停止Cortex-M33内核,但仅用于调试目的。在生产系统中,不建议从Linux OS停止Cortex-M33内核。
在启动Cortex-M33内核前,需确保其调试UART端口已在调试终端中打开。
在该示例中,Cortex-M33程序首先在U-Boot中从SD卡的分区1加载。然后Cortex-M33内核通过bootaux命令启动。最后,Cortex-A55内核上的Linux通过boot命令启动。请确保Cortex-M33程序二进制文件以FAT分区格式存储在SD卡的分区1中。在该示例中,二进制文件“imx93-11x11-evk_m33_TCM_power_mode_switch.bin”被用作示例。
板上电后,在Cortex-A55调试终端中按任意键进入U-Boot。然后使用以下命令启动Cortex-M33内核。
u-boot=> fatload mmc 1:1 ${loadaddr} imx93-11x11-evk_m33_TCM_power_mode_switch.bin
19080 bytes read in 6 ms (3 MiB/s)
u-boot=> cp.b ${loadaddr} 0x201e0000 ${filesize}
u-boot=> bootaux 0x1ffe0000 0
## Starting auxiliary core addr = 0x1FFE0000...
u-boot=> setenv mmcargs 'setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot} clk_ignore_unused'
u-boot=> run prepare_mcore
u-boot=> boot如果Cortex-M33内核使用此二进制文件成功启动,则应在Cortex-M33调试终端中打印以下日志:
在此示例中,Cortex-M33程序从Linux的rootfs加载,并通过remoteproc启动。此处,二进制文件“imx93-11x11-evk_m33_TCM_power_mode_switch.elf”被用作示例。
注:如果选择使用remoteproc启动Cortex-M33内核,请确保在启动Linux操作系统之前,在U-Boot中执行“run prepare_mcore”命令,如下所示。
u-boot=> run prepare_mcore
u-boot=> boot 在Linux启动后,在Cortex-A55的调试终端中使用下面的命令来启动Cortex-M33内核。
root@imx93frdm:~# echo /lib/firmware/imx93-11x11-evk_m33_TCM_power_mode_switch.elf > /sys/class/remoteproc/remoteproc0/firmware
root@imx93frdm:~# echo start > /sys/class/remoteproc/remoteproc0/state如果Cortex-M33内核使用此二进制文件成功启动,则应在Cortex-M33调试终端中打印以下日志。
FRDM-IMX93配备Ethos-U65 NPU,用于加速神经网络机器学习推理。该NPU运行频率为1GHz,计算能力为0.5 Tops (256 MAC/周期)。如需了解有关Ethos-U65软硬件架构的详情,请参阅《i.MX机器学习用户指南》。
要利用Ethos-U65 NPU进行加速,神经网络算子必须量化为8位(无符号或有符号)或16位(有符号)。对于模型量化,请下载最新的eIQ工具包并查看用户指南。
要将量化后的神经网络(NN)模型部署在Ethos-U65上,第一步是使用Vela编译器对准备好的模型进行编译。Vela工具用于将TensorFlow Lite NN模型编译成一个优化的版本,该版本可在包含Arm Ethos-U NPU的嵌入式系统上运行。在优化后的模型中,可通过Ethos-U NPU加速的部分包含TFLite自定义算子。而无法被加速的部分则保持不变,并通过相应的内核在CPU (Cortex-A或Cortex-M)上运行。编译完成后,优化后的模型只能在集成了Ethos-U NPU的嵌入式系统上运行。该工具还会生成编译后模型的性能预估。
FRDM-IMX93支持在目标Vela编译和离线Vela编译。对于在目标Vela编译,Linux BSP中默认已安装了Vela编译器。开发人员可以直接在配备Linux BSP的FRDM-IMX93板上使用以下命令进行编译。
root@imx93frdm:~# vela YOUR_MODEL_NAME.tflite 如果运行成功,Vela编译的模型YOUR_MODEL_NAME_vela.tflite将在输出文件夹中生成。
对于离线Vela编译,请下载最新的eIQ工具包并查看用户指南。
要评估Vela编译模型在NPU上的性能,最简单的方法是使用Linux BSP中的benchmark_model工具。该工具使用随机数据作为输入,并给出指定运行次数的平均推理时间。以下是一个示例:
root@imx93frdm:~# /usr/bin/tensorflow-lite-2.16.2/examples/benchmark_model --graph=/root/mobilenet_v1_1.0_224_quant_vela.tflite --external_delegate_path=/usr/lib/libethosu_delegate.so 如果运行成功,调试终端中将打印如下日志:
通过在命令中设置 --enable_op_profiling=true,benchmark_model工具还可以提供算子分析报告。如需了解benchmark_model用法的详情,请使用--help查看。
关于如何使用C++和Python编写代码在NPU上运行模型推理,请参考GoPoint中的示例应用。
除了Tensorflow,PyTorch也是构建NN模型的主流深度学习框架。但Vela工具仅支持编译TensorFlow Lite NN模型。关于如何将PyTorch模型转换为TensorFlow Lite模型,请查阅应用笔记AN13769《使用ONNX将PyTorch模型部署到恩智浦支持的推理引擎》。
FRDM-IMX93配备一个像素处理管道(PXP)模块,该模块可用于处理图形缓冲或合成视频与图形数据,再将这些内容发送至LCD显示器或电视编码器之。PXP用于最大限度地减少显示管道所需的内存占用,并为无SDRAM和基于SRAM的系统提供面积和性能优化的解决方案。PXP将缩放、色彩空间转换和旋转处理集成到一个单一的处理引擎中。
有关PXP及其使用方法的更多详情,请查阅应用笔记AN13829《如何在GStreamer和Wayland中使用PXP》。
系统安全性与完整性始终是产品开发中最为关键的考虑要素之一。
FRDM-IMX93支持安全启动和加密启动功能,有效防止设备在启动序列中执行未经授权的软件,并保护引导加载程序数据免遭未授权的访问。
有关安全启动功能的详细说明,请参阅应用笔记AN12312《在支持AHAB的设备上实现安全启动》。
有关加密启动功能的详细说明,请参阅应用笔记AN13994《在支持AHAB的i.MX设备上实现加密启动》。
在某些应用场景下,对设备启动时间有严格要求,即设备必须在限定时间内完成启动过程。
为优化启动时间,FRDM-IMX93在U-Boot中支持Falcon模式。Falcon模式是U-Boot的一项功能,它允许SPL直接启动Linux内核,从而实现快速启动。它完全跳过了U-Boot的加载和初始化,从而减少在引导加载程序中花费的时间。
关于如何启用Falcon模式以及进一步优化启动时间,请参阅应用笔记AN14093《通过Falcon模式及内核优化在i.MX 8M和 i.MX 9上实现快速启动》。