Getting Started with the MCIMX8M-EVK | NXP 半导体

MCIMX8M-EVK快速入门

上次修改时间: 2022-12-06 13:29:00支持 i.MX 8M评估套件

1. 开箱即用

Video Player is loading.
Current Time 0:00
Duration 0:00
Loaded: 0%
Stream Type LIVE
Remaining Time 0:00
 
1x
  • Chapters
  • descriptions off, selected
  • captions off, selected

      以下说明将指导您如何启动i.MX 8M评估工具包中预加载的Android镜像。

      开发套件包含:

      • 面向智能设备的i.MX8MQuad EVK板
      • USB线缆(Micro-B至Standard-A)
      • 线缆——组件, USB 3.0 A型公头, USB micro-B型公头, 屏蔽线, 1米
      • 线缆——组件, USB 2.0 A型公头, USB C型公头, 屏蔽线, 1米
      • 12 V/5 A通用电源
      • 快速入门指南
      • Android BSP闪存到eMMC中

      1.1 熟悉板

      GS-MCIMX8EVK-BOARD

      GS-MCIMX8EVK-BOARD

      GS-MCIMX8EVK-BOARD-BACK

      GS-MCIMX8EVK-BOARD-BACK

      1.2 从eMMC启动

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

      如需了解有关恩智浦嵌入式Linux®、嵌入式Android或MCUXpresso SDK的更多详情,请继续阅读后续章节。

      1.3 连接USB调试线缆

      将所提供的USB线缆的micro-B端连接到调试UART端口J901。将线缆的另一端连接到主机。

      如果您不确定如何使用终端应用,请根据主机的操作系统尝试以下任一教程: Minicom教程Tera Term教程PuTTY教程

      1.4 连接HDMI线缆

      要查看随镜像二进制文件提供的用户界面,请通过HDMI接头(J1001)连接显示器。

      1.5 启动开关设置

      默认情况下,这两个启动开关被配置为零位置。使用eMMC启动模式下的SW801开关,板从eMMC启动。

      i.MX板的启动模式由板上启动配置开关来控制。

      IMX 8M Chip

      IMX 8M Chip

      下表显示了DIP开关设置(在启动过程中优先),以便从i.MX8MQuad EVK板的EMMc来启动。

      开关 D1 D2 D3 D4
      SW801
      SW802 - -

      1.6 接通电源

      将12V电源的插头与DC电源插头J902连接。将电源开关SW701滑至ON,为EVK板通电。

      翻转开关为板通电(SW701)。处理器开始执行片上ROM的代码。使用默认启动开关设置,代码读取熔丝,定义可能有可启动镜像的介质。找到可启动镜像后,U-Boot执行应自动开始。

      信息在Cortex-A53的较小编号串行控制台中打印(例如Windows上的COM9和Linux上的/dev/ttyUSB*)。如果不停止U-boot流程,就会继续启动Linux内核。

      1.7 Android已启动

      在启动过程中,Android标识会出现在HDMI显示屏上。注意,HDMI输出分辨率固定为1080P——要对其进行更改,请查看Android文档

      启动过程完成后,可以看到Android用户界面。您可以用鼠标开始操作。

      2. 嵌入式Linux®

      本部分仅适用于试图将Linux操作系统加载到板的情况。

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

      当前Linux二进制演示文件版本可参见i.MXLinux下载页面Linux用户指南Linux参考手册提供更多信息。i.MXLinux文档包i.MX软件和开发工具的Linux部分提供其他文档。

      2.1 概述

      Linux操作系统内核在i.MX板上启动前,需要将Linux镜像复制到启动设备(SD卡、eMMC等),而启动开关需要设置为启动此设备。

      为不同的板和启动设备下载Linux BSP镜像有多种方法。

      本入门指南仅列出了将Linux BSP镜像传输到SD卡的几种方法。经验丰富的Linux开发人员可探究其他选项。

      根据主机中使用的操作系统,将Linux BSP镜像传输到SD卡的方式可能会有所不同。

      从下面的选项中进行选择,获取详细指导:

      将所提供的USB线缆的micro-B端连接到调试UART端口J1701。将线缆的另一端连接到主机。

      如果您不确定如何使用终端应用,请尝试以下任一教程,具体取决于主机的操作系统:

      3. 嵌入式Android

      本节介绍了带嵌入式Android系统镜像的i.MX8MQuad EVK板的启动过程,并简介了如何构建软件组件,创建您自己的系统镜像。如需了解构建Android平台的更多信息,请参见文档

      当前版本包括演示镜像源代码文档。在i.MX软件和开发工具下的Android部分也提供上述项目。

      3.1 概述

      开发系统(MMC/SD或NAND)上的存储设备必须采用U-Boot启动加载程序来编程。启动过程确定了将访问哪些存储设备,具体取决于开关设置。当启动加载程序已加载并开始执行时,可读取U-Boot的环境空间,以确定如何继续启动过程。

      镜像可来自预建版本数据包或使用源代码创建。无论采用哪种方式获取,所有Android镜像都包含以下组件:

      • U-Boot镜像:u-boot.imx

      • 启动镜像:boot.img

      • Android系统根镜像:system.img

      • 恢复根镜像:recovery.img

      如需了解有关Android BSP的更多信息,请参见Android用户指南

      根据主机中使用的操作系统,将Android BSP镜像传输到SD卡的方式可能会有所不同。

      4. MCUXpresso SDK

      MCUXpresso软件开发套件(MCUXpresso SDK)提供了在i.MX8MQuad M4内核中执行的全部软件源代码。如果您此时不想在i.MX8MQuad上启用Cortex-M4,则可跳过本节。

      4.1 概述

      MCUXpresso SDK专为Cortex-M4独立或与A内核协作使用的嵌入式应用开发而设计。除了外设驱动程序外,MCUXpresso SDK还提供了广泛而丰富的应用示例,涵盖从基本外设用例示例到演示应用的所有内容。MCUXpresso SDK还包含RTOS内核、设备软件栈以及各种其他中间件,支持快速开发。

      根据主机使用的操作系统,构建和部署演示的方式可能有所不同。

      从下面的选项中进行选择,获取详细指导:

      网络安全和完整性

      网络安全和完整性

      CAAM模块示例

      i.MX 8M SoC包含加密加速与保证模块(CAAM模块),可通过CryptoDev使用,借助硬件加快加密和解密过程。由于CAAM模块位于SoC上,因此i.MX8M EVK板也支持它。建议在处理大量数据时或在性能要求较高的任何应用中使用此模块。

      检查速度性能

      OpenSSL是一个开源项目,定义安全协议SSL(安全套接字层)和TLS(传输层安全)。它有一个软件库,可用于需要安全信息传输的应用,以防止窃听。

      OpenSSL包括一个速度命令,用于测试所需加密算法的加密性能。对于本示例,使用的算法为aes-128-cbc,实现高级加密标准(AES)加密算法,支持密码块链(CBC)运行模式和128位块。

      使用以下命令可观看OpenSSL速度测试:

      123456789101112131415161718192021222324# openssl speed -evp aes-128-cbc
          
          Doing aes-128-cbc for 3s on 16 size blocks: 43389139 aes-128-cbc's in 2.99s
          
          Doing aes-128-cbc for 3s on 64 size blocks: 28788614 aes-128-cbc's in 3.00s
          
          Doing aes-128-cbc for 3s on 256 size blocks: 11766741 aes-128-cbc's in 2.99s
          
          Doing aes-128-cbc for 3s on 1024 size blocks: 3674139 aes-128-cbc's in 2.99s
          
          Doing aes-128-cbc for 3s on 8192 size blocks: 495157 aes-128-cbc's in 3.00s
          
          OpenSSL 1.0.2p 14 Aug 2018
          
          built on: reproducible build, date unspecified
          
          options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(ptr)
          
          compiler: arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 -DL_ENDIAN -DTERMIO -O2 -pipe -g -feliminate-unused-debug-types -Wall -Wa,--noexecstack -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS
          
          The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
          
          Aes-128-cbc 193627.86k 513839.78k 837089.96k 1048974.64k 1130986.42k
          

      解决方案:在文档“AN12838使用CAAM安全密钥加强公钥密码”的第5.2.1节和第5.2.2节中,它描述了使用的详细信息。

      有线通信

      有线通信

      借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:本教程将逐步说明如何使用i.MX 8M EVK在Linux上连接到互联网:

      1. 将以太网线缆连接到板RJ-45接头上。
      2. 启动板,等待Linux提示
      3. 当Linux发出提示后,输入下面的命令。
        12#Log in: root
         # ifconfig eth0
      4. Ping任何网站以证实其功能
      12345678910# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 
      
      64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.81 ms 64 bytes 
      
      from 8.8.8.8: icmp_seq=2 ttl=119 time=4.87 ms 64 bytes 
      
      from 8.8.8.8: icmp_seq=3 ttl=119 time=4.94 ms 64 bytes 
      
      from 8.8.8.8: icmp_seq=4 ttl=119 time=4.61 ms
      

      无线连接

      无线连接

      电源管理

      电源管理

      PF4210是恩智浦针对i.MX 8M优化的14通道电源管理单元IC

      低功耗模式暂停示例

      借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:本示例显示如何进入低功耗模式和恢复正常操作。

      输入下面的命令,启用串行TTY作为板的唤醒源:

      路径:

      1# echo enabled > /sys/class/tty/ttymxc0/power/wakeup

      输入下面的命令,进入Suspend-To-RAM模式:

      1234567891011121314# echo mem > /sys/power/state
      
          PM: suspend entry (deep) 
          
          PM: Syncing filesystems ... done. 
          
          Freezing user space processes ... (elapsed 0.001 seconds) done. 
          
          OOM killer disabled. 
          
          Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done. 
          
          Suspending console(s) (use no_console_suspend to debug)
          

      按下SW1701开关,唤醒板。终端上应出现以下消息:

      1234567891011121314151617181920212223242526HIFsuspendwow TODO 
      PM: suspend devices took 0.112 seconds Disabling non-boot CPUs ... 
      CPU1: shutdown 
      psci: CPU1 killed. 
      CPU2: shutdown 
      psci: CPU2 killed. 
      CPU3: shutdown 
      psci: Retrying again to check for CPU kill 
      psci: CPU3 killed. 
      Enabling non-boot CPUs ... 
      Detected VIPT I-cache on CPU1 
      GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000 
      CPU1: Booted secondary processor [410fd034] 
      cache: parent cpu1 should not be sleeping CPU1 is up Detected VIPT I-cache on CPU2 
      GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000 
      CPU2: Booted secondary processor [410fd034] 
      cache: parent cpu2 should not be sleeping CPU2 is up Detected VIPT I-cache on CPU3 
      GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000 
      CPU3: Booted secondary processor [410fd034] 
      cache: parent cpu3 should not be sleeping 
      CPU3 is up 
      PM: resume devices took 0.028 seconds 
      OOM killer enabled. 
      Restarting tasks ... done. 
      PM: suspend exit 
      

      音频

      音频

      简单音频示例

      这个简单的例子显示了audiotestsrcalsasink之间的链路。

      将耳机插入i.MX 8M EVK板上的音频插孔。

      如果您的耳机包含麦克风功能(带有四个触点的TRRS),请不要将麦克风插孔推到底。在外面留一个接触环。

      123456789101112131415161718192021222324#aplay -1
      
      **** List of PLAYBACK Hardware Devices ****
      
      card 0: imxspdif [imx-spdif], device 0: S/PDIF PCM snd-soc-dummy-dai-0 [S/PDIF PCM snd-soc-dummy-dai-0]
      Subdevices: 1/1 
      Subdevice #0: subdevice #0 
      card 2: wm8524audio [wm8524-audio], device 0: HiFi wm8524-hifi-0 
      [] 
      Subdevices: 1/1 
      Subdevice #0: subdevice #0 
      card 2: wm8524audio [wm8524-audio], device 1: HiFi-ASRC-FE (*) 
      [] 
      Subdevices: 1/1 
      Subdevice #0: subdevice #0 
      # gst-launch-1.0 audiotestsrc ! alsasink device=plughw:2 
      Setting pipeline to PAUSED ... 
      Pipeline is PREROLLING ... 
      Redistribute latency... 
      Pipeline is PREROLLED ... 
      Setting pipeline to PLAYING ... 
      
      New clock: GetAudioSinkClock
      

      在耳机里应该能听到提示音。

      听完提示音后,按下kbd:[Ctrl+C],完成命令行

      这个简单的例子显示了audiotestsrcalsasink之间的链路。

      将耳机插入i.MX 8M EVK板上的音频插孔。

      解码器视频音频示例

      本示例说明如何只解码视频文件中的音频。将视频文件复制到您的SD卡rootfs分区上的/home/root/,从SD卡启动板,然后运行下面的命令:

      注:您可从Big Buck Bunny网站免费获得本示例中使用的文件。

      1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192# gplay-1.0 SampleVideo_1280x720_2mb.mp4
      
      FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
      
      Set VideoSink kmssink
                
      Set TextSink fakesink ====== AIUR: 4.3.4 build on Mar 12 2018 11:47:35. ======
                
      Core: AVI_PARSER_03.05.29 build on Aug 31 2017 09:15:57
                
      file: /usr/lib/imx-mm/parser/lib_avi_parser_arm_elinux.so.3.1
                
      Track 00 [video]: Disabled
                
      Codec: 4, SubCodec: 1
                
      -----------------------
                
      ------------------------ Track 01 [audio_0] Enabled
                
      Duration: 0:09:56.424000000
                
      Language: und
                
      Mime: audio/mpeg, mpegversion=(int)1, channels=(int)2, rate=(int)48000, bitrate=(int)0
                
      codec_data=(buffer)014d401fffe10017674d401fda014016ec0440000003004000000c83c60ca801000468ef3c80
                
      ------------------------
                
      ====== BEEP: 4.3.4 build on Mar 12 2018 11:47:45. ======
                
      Core: MP3 decoder Wrapper build on Jan 11 2018 10:20:25
               
      file: /usr/lib/imx-mm/audio-codec/wrap/lib_mp3d_wrap_arm_elinux.so.3
                
      CODEC: BLN_MAD-MMCODECS_MP3D_ARM_02.13.01_ARMV8 build on Jan 11 2018 10:05:45. [Stop (No Repeated)][Vol=1.0][00:00:00/00:09:56]=========== fsl_player_play()=========== FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
                
      [h]display the operation Help
                
      [p]Play
                
      [s]Stop
                
      [e]Seek
                
      [a]Pause when playing, play when paused
                
      [v]Volume
                
      [m]Switch to mute or not
                
      [>]Play next file
                
      [ [r]Switch to repeated mode or not
                
      [u]Select the video track
                
      [d]Select the audio track
                
      [b]Select the subtitle track
               
      [f]Set full screen
               
      [z]resize the width and height
                
      [t]Rotate
                
      [c]Setting play rate
                
      [i]Display the metadata
                
      [x]eXit
                
      State changed: buffering
                
      State changed: playing
                
      [Playing (No Repeated)][Vol =1.0][00:00:13/00:00:13]EOS Found
                
      getNextItem No next item!
               
      No more media file, exit gplay!
               
      State changed: stopped
                
      Exit display thread
                
      FSL_PLAYER_UI_MSG_EXIT
                
      fsl_player_deinit
          

      显示器和显卡

      显示器和显卡

      摄像头接口

      摄像头接口

      机器学习

      机器学习

      机器学习(ML)通常包括需要分类、识别和预测人为抽象的应用。例子包括图像识别、手势识别、异常检测、语音到文本、文本到语音、自动语音识别(ASR)、场景识别等等。本节将专门介绍应用于图像或视频流的恩智浦机器学习(ML)工具。音频部分可以参考所包括的示例。

      设备管理和安全OTA

      设备管理和安全OTA

      机器学习(ML)通常包括需要分类、识别和预测人为抽象的应用。例子包括图像识别、手势识别、异常检测、语音到文本、文本到语音、自动语音识别(ASR)、场景识别等等。本节将专门介绍应用于图像或视频流的恩智浦机器学习(ML)工具。音频部分可以参考所包括的示例。

      Minicom教程

      串行控制台通信的设置

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

      1$ ls /dev/ttyUSB* 

      较小编号适用于Arm®Cortex®-A53内核,较大编号适用于Arm®Cortex®-M4内核。

      Minicom

      使用以下命令安装和运行串行通信程序(以minicom为例):

      1. 使用Ubuntu包管理器安装Minicom。
        1 $ sudo apt-get install minicom 
      2. 启动Minicom,使用先前确定的端口号通过控制台窗口进行
        1$ sudo minicom /dev/ttyUSB* -s 
      3. 配置Minicom,如图3 GS-MCIMX7SABRE-MINICOM
      4. 下一步是连接HDMI线缆。

      Tera Term教程

      串行控制台通信的设置

      i.MX8MQuad上的FTDI USB串行芯片将枚举两个串行端口。假设这两个端口分别为COM9COM10。较小的端口号( COM9)适用于来自Arm®Cortex®-A7的串行控制台通信,而较大的端口号(COM10)适用于Arm®Cortex®-M4内核。串行转USB驱动程序请参见FTDI芯片驱动

      Tera Term

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

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

      PuTTY教程

      串行控制台通信的设置

      i.MX8MQuad上的FTDI USB串行芯片将枚举两个串行端口。假设这两个端口分别为COM9COM10。较小的端口号(COM9)适用于来自Arm®Cortex®-A7的串行控制台通信,而较大的端口号(COM10)适用于Arm®Cortex®-M4。串行转USB驱动程序请参见FTD芯片驱动

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

      1. 下载PuTTY下载完成后,运行安装程序,然后返回到该页面继续操作。
      2. 启动PuTTY,可双击下载的*.exe文件或从开始菜单启动,具体取决于您所选的下载类型。
      3. 配置在启动的窗口中进行。选择Serial单选按钮并输入之前确定的COM端口号。还要输入波特率,在本例中,为115200

      4. PUTTY-Configuration
      5. 点击“Open”,打开串行连接。假设板已连接,并已输入正确的COM端口,此终端窗口会打开。如果配置不正确,PuTTY将会发出提示。
      6. 下一步是连接HDMI线缆。

      支持

      培训

      要了解帮助步骤,请先找到您的问题。如果仍需帮助,请联系恩智浦支持部。

      培训 说明
      i.MX 8M培训 关于恩智浦此产品的点播培训、操作指南视频和在线研讨会完整列表。

      论坛

      在恩智浦的一个社区网站上,可与其他工程师交流,获取专家建议,了解如何使用i.MX 8M进行产品设计。

      产品论坛:

      软件论坛: