FRDM-IMX91开发板快速入门

上次修改时间: 2025-02-13 14:52:00支持 FRDM i.MX 91

本文档内容

  • 1

    开箱即用
  • 2

    获取软件
  • 3

    构建并运行
  • 4

    Developer Experience(开发人员体验)

1. 开箱即用

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

开发套件包含:

  • FRDM-IMX91开发板,搭载u-blox模块MAYA-W476,配备恩智浦的Wi-Fi 6三频IW610
  • 线缆:组件,USB 2.0,C型公头转A型公头
  • 软件:在eMMC中编程的Linux BSP镜像
  • 快速入门指南

跟着演示视频,采用FRDM-IMX91开始开发你的应用。如需了解更多信息,请访问i.MX 91应用处理器文档

1.1 熟悉板

FRDM-IMX91 Top

FRDM-IMX91 Top

1.2 从eMMC启动

FRDM-IMX91配备一个预置的恩智浦Linux二进制演示镜像,在eMMC上闪存。无需修改内部的二进制文件,从eMMC启动将提供具有某些功能的默认系统,在Linux上构建其他应用。

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

1.3 连接USB调试线缆

将提供的USB Type-C线缆连接到调试UART端口P16,然后将线缆的另一端连接到主机。

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

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

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

1.4 启动开关设置

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

启动模式 SW1-4 SW1-3 SW1-2 SW1-1
串行下载器 0 0 0 1
USDHC1 8位eMMC 5.1 0 0 1 0
USDHC2 4位SD3.0 0 0 1 1

1.5 连接LCD面板(可选)

将并行LCD面板(TM050RDH03-41)插入P112x20引脚EXPI。将电源线连接到电源连接器(P1)。在u-boot阶段将DTB切换为“imx91-11x11-frdm-tianma-wvga-panel.dtb”。

1.6 板启动

将电源线连接到电源连接器(P1)。

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

1.7 加载Wi-Fi、蓝牙和802.15.4驱动程序模块

要登录FRDM-IMX91上运行的Linux系统,请使用“root”作为i.MX Linux操作系统的默认登录用户名,无需密码。使用以下命令在内核中加载Wi-Fi和蓝牙模块。

root@imx91frdm:~# modprobe moal mod_para=nxp/wifi_mod_para.conf
root@imx91frdm:~# ifconfig mlan0 up
root@imx91frdm:~# modprobe btnxpuart
root@imx91frdm:~# hciconfig hci0 reset

欲了解更多信息,请访问:FRDM-IMX91连接培训 —— 恩智浦技术论坛

2. 获取软件

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

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

2.1 概述

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

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

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

FRDM-IMX91的最新预建镜像可在FRDM i.MX 91开发板上获取。

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

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

除了“开箱即用”章节的连接外,使用USB线缆将USB1连接到主机。

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

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

3. 构建并运行

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

3.1 FRDM-IMX91 Yocto BSP

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

  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. 将meta-imx-frdm层集成到Yocto代码库中:
    $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
  4. Yocto Project设置:
    $ cd ${MY_YOCTO}
    $ MACHINE=imx91frdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx91
  5. 构建镜像:
    $ bitbake imx-image-full
  6. 烧写SD卡镜像:
    $ zstdcat imx-image-full-imx91frdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && sync

    或使用uuu将映像烧录到 SD 卡:

    $ uuu -b sd_all imx-image-full-imx91frdm.rootfs.wic.zst
  7. 将启动开关SW1[1:4]更改为“1100”以选择SD卡启动,插入SD卡并启动FRDM-IMX91开发板。

3.2 支持FRDM-IMX91 Matter

FRDM-IMX91支持Matter。要加入Matter支持,请按照以下步骤将Matter层纳入Yocto构建。

  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层:
    $ cd ${MY_YOCTO}/sources/meta-nxp-connectivity
    $ git remote update
    $ git checkout imx_matter_2024_q3
  4. 将meta-imx-frdm层集成到Yocto代码库中:
    $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
  5. Yocto Project设置:
    $ cd ${MY_YOCTO}
    $ MACHINE=imx91frdm-iwxxx-matter DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-matter-setup.sh bld-xwayland-imx91
  6. 构建镜像:
  7. $ bitbake imx-image-multimedia

3.3 FRDM-IMX91 Debian

FRDM-IMX91支持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)

有关NXP Debian Linux SDK发行版的更多详情,请查阅《NXP Debian Linux SDK Distribution for i.MX and Layerscape》

Debian快速入门

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

  1. 在Linux主机上下载flex-installer
  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 imx91frdm
  5. 将SD卡插入FRDM-IMX91开发板,并按以下方式安装额外的软件包。
    1. 通过DHCP或手动设置以太网网络接口。
    2. $ dhclient -i end0
    3. 设置正确的系统时间,例如:
    4. $ date -s "22 Nov 2024 09:00:00"
    5. 为GNOME GUI桌面版安装附加软件包
    6. $ debian-post-install-pkg desktop
    7. 或为不带GUI桌面的服务器版安装附加软件包
    8. $ debian-post-install-pkg server
    9. 安装完成后,运行重启命令启动Debian桌面/服务器系统。

使用Flexbuild构建Debian镜像

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

  1. 设置构建环境
    $ 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
  2. 使用Flexbuild构建镜像
    $ bld -m imx91frdm
  3. Flexbuild用法如下:

    要构建镜像的单个部分,请查看以下Flexbuild用法命令列表

    $ bld uboot -m imx91frdm (compile u-boot image for imx91frdm)
    $ bld linux (compile linux kernel for all arm64 i.MX machines)
    $ bld bsp -m imx91frdm (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) 的更多详细信息,请访问此链接

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

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

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

在Linux中调试终端

串行控制台通信的设置

串行转USB驱动程序请参见CH342F Linux驱动程序

在Linux主机的命令提示符上,运行以下命令,确定端口号:

ls /dev/ttyCH343USB*

第一个数字代表Arm® Cortex®-A55。

Minicom

使用以下命令安装和运行Minicom程序:

  1. 使用Ubuntu包管理器安装Minicom。
  2. sudo apt-get install minicom
  3. 启动Minicom,使用先前确定的端口号通过控制台窗口进行
  4. sudo minicom /dev/ttyCH343USB * -s
GS-FRDM-IMX93-IMG3

按照图中所示配置Minicom,并退出配置。

在Windows中调试终端

串行控制台通信的设置

FRDM-IMX91上的WCH USB串行芯片枚举2个串行端口。假设端口分别为COM11COM12。第一个端口(COM11)用于Arm® Cortex®-A55的串行控制台通信。串行转USB驱动程序请参见CH342F Windows驱动程序

Tera Term

Tera Term是一款开源终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口发送的信息。

  1. 下载Tera Term。下载完成后,运行安装程序,然后返回到该页面继续操作。
  2. 启动TeraTerm。首次启动时,会显示以下对话。选择串行选项。假设已连接了板,列表中会自动填充一个COM端口。
  3. 配置串行端口设置(使用之前确定的COM端口号),波特率为115200,数据位为8,无奇偶校验位,停止位为1。要进行此操作,进入Setup→Serial Port(设置→串行端口)并更改设置。
  4. 确认连接已打开。

PuTTY

PuTTY是一款广受欢迎的终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口发送的信息。

  1. 下载PuTTY。下载完成后,运行安装程序,然后返回到该页面继续操作。
  2. 启动PuTTY,可双击下载的*.exe文件或从开始菜单启动,具体取决于您所选的下载类型。
  3. 配置在启动的窗口中进行。选择Serial单选按钮并输入之前确定的COM端口号。还要输入波特率,在本例中,为115200。
  4. 点击“Open”(打开),打开串行连接。假设板已连接,并已输入正确的COM端口,此终端窗口会打开。如果配置不正确,PuTTY将会发出提示

安全性与完整性

安全性与完整性

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

FRDM-IMX91支持安全启动和加密启动功能,有效防止设备在启动序列中执行未经授权的软件,并保护引导加载程序数据免遭未授权的访问。

有关安全启动功能的详细说明,请参阅应用笔记AN12312“在支持AHAB的设备上实现安全启动”

有关加密启动功能的详细说明,请参阅应用笔记AN13994“在支持AHAB的i.MX设备上实现加密启动”

快速启动

快速启动

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

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

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