下面描述了启动i.MX 8M Nano UL DDR3L EVK的步骤。
开发套件包含:
图1. i.MX 8M Nano UL DDR3L EVK板的俯视图
图2. i.MX 8M Nano UL DDR3L EVK板的后视图
启动开关应设置为从eMMC启动。仅使用SW1101 [1-4]启动。见下表
启动设备
SW1101
SW1102
eMMC/uSDHC3
0100XXXXXX
XXXXXXXXXX
注: 1
= 开启 0
= 关闭 X
= 无关
《 i.MX 8M Nano参考手册》和开关附近板上的丝印层也提供相同的信息。
i.MX 8M Nano UL DDR3L EVK配备一个预置的恩智浦Linux二进制演示镜像,在eMMC上闪存。无需修改内部的二进制文件,从eMMC启动将提供具有某些功能的默示认系统,在Android上构建其他应用。
将所提供的USB线缆的micro-B端连接到调试UART端口J901
。将线缆的另一端连接到主机。
如果您不确定如何使用终端应用,请尝试以下教程之一,具体取决于主机的操作系统:
点击此处查看启动开关设置
将电源线插入电源接头(J302
)。
翻转开关为电路板通电(SW101
)。
处理器开始执行片上ROM的代码。使用默认启动开关设置,代码读取保险丝,定义可能有可启动镜像的介质。找到可引导镜像后,U-Boot执行应自动开始。
信息打印在Cortex®-A53上数字较小的串行控制台中. 如果不停止U-boot流程,就会继续启动Linux内核。
在启动过程中,PC的终端窗口上将滚动显示操作系统状态信息。要在主机PC的终端窗口中工作,请在终端窗口中按Enter键获取命令提示符。以root身份登录。恭喜,您已经启动并运行。
本部分仅适用于将Linux操作系统加载到板的情况。
i.MX Linux板级支持包(BSP)是一系列二进制文件、源代码和支持文件,可用来启动特定i.MX开发平台上的Embedded Linux镜像。
当前Linux二进制演示文件版本可在i.MX Linux下载页面找到。i.MX Linux文档包或i.MX软件和开发工具的Linux部分提供其他文档。
Linux操作系统内核在i.MX板上启动前,需要将Linux加载到引导设备(SD卡、eMMC等),而启动开关需要设置为启动此设备。
有多种方法为不同的板和引导设备和下载Linux BSP镜像。
本入门指南仅列出了将Linux BSP镜像传输到SD卡的几种方法。经验丰富的Linux开发人员可探究其他选项。
i.MX 8M Nano UL DDR3L EVK最新的预构建镜像在Linux最新版本的Linux下载页面提供。
预建的恩智浦Linux二进制演示镜像提供典型系统和基本的功能集,用于使用和评估处理器。无需修改系统,用户就可以评估硬件接口、测试SoC功能并运行用户空间应用。
当需要更多灵活性时,SD卡可逐一与单个组件(启动加载程序、内核、dtb文件和roofs文件)一起加载,或者可加载.sdcard
镜像,并且特定组件可以覆盖单个部件。
除了“开箱即用”章节的连接外,使用USB线缆将J301连接到主机。
为板断电。参考启动开关设置,配置电路板在SDP (串行下载协议)模式启动。
根据主机中使用的操作系统,将Linux BSP镜像传输到SD卡的方式可能会有所不同。从下面的选项中进行选择,获取详细指导:
从下面的选项中进行选择,获取详细指导:
从UUU GitHub页面下载最新的stable文件。有关UUU的详细教程可在https://github.com/NXPmicro/mfgtools/wiki中找到。
向uuu文件添加执行权限并执行。Uuu等待USB设备连接。
$ chmod a+x uuu
$ sudo ./uuu L5.4.70_2.3.0_images_MX8MMEVK.zip
为板通电,uuu
开始将镜像复制到板。
完成后,为板断电,然后参考
将板配置为从SDcard启动。从UUU GitHub页面下载最新的stable文件。有关UUU的详细教程可在https://github.com/NXPmicro/mfgtools/wiki中找到。
> uuu.exe L5.4.70_2.3.0_images_MX8MMEVK.zip
为板通电,uuu
开始将镜像复制到板。
完成后,为板断电,然后参考
将板配置为从SDcard启动。在使用嵌入式系统时,请务必记住文档的广泛性和多样性。有多种级别的文档很常见。i.MX 8M Nano UL DDR3L EVK板有一些文档。但该板的处理器是i.MX 8M Nano,它与SoC级文档一起归档。可用的BSP与BSP级别文档一起归档。
从下面的选项中进行选择,获取相关文档:对于i.MX 8M Nano UL DDR3L EVK,提供以下文档。
表2. i.MX 8M Nano UL DDR3L EVK板相关文档列表
文档 | 说明 |
---|---|
板原理图 | i.MX 8M Nano UL DDR3L EVK电子原理图文件。 |
i.MX 8M Nano EVK硬件用户指南 | 本文档旨在帮助硬件工程师设计和测试基于imx8mnano系列处理器的设计。它提供有关板布局建议设计清单的信息,确保一次便可成功,还提供避免板启动问题的方法。它还提供有关板级测试和模拟的信息,例如使用BSDL进行板级测试,使用IBIS模型进行电气完整性模拟等。 |
对于i.MX 8M Nano SoC,提供以下文档。
表 3. i.MX 8M Nano芯片相关文档列表
文档 | 描述 |
---|---|
i.MX 8M Nano参考手册 | 列出SoC支持的内容、寄存器和存储器映射。介绍了每个寄存器位的特性、工作流程、启动流程和含义。 |
i.MX 8M Nano ERRATA | 列出了该SoC的硬件问题。可能是Arm内核或i.MX内核问题。可能有临时解决方案,也可能没有。 |
i.MX 8M Nano安全参考手册 | 注册,请求访问i.MX 8M Nano安全参考手册。下载链接通过电子邮件发送。 |
对于i.MX 8M Nano UL DDR3L EVK,提供以下BSP。
每个BSP都有一组文档,下表中描述了所有BSP文档。文档在表中出现的顺序是推荐的读取顺序。
表4. i.MX 8M Nano UL DDR3L EVK BSP Linux文档
文档 | 描述 |
---|---|
Linux Doc文档包 | 将此处列出的所有i.MX Linux BSP文件下载为一个tarball。 |
Linux Doc文档包 | 将此处列出的所有i.MX Linux BSP文件下载为一个tarball。 |
i.MX Linux版本说明 | 如果您不知从哪里开始,就从这里开始吧!它列出了支持的板、支持的功能、软件包版本和已知问题列表。 |
i.MX Linux用户指南 | 描述下载、构建和部署i.MX Linux BSP的步骤。例如,详细说明如何从不同的介质配置、构建和部署U-Boot引导。 |
i.MX Yocto Project Linux用户指南 | 描述下载、构建、部署和配置Yocto Project元数据以及构建镜像的步骤。 |
i.MX BSP Linux移植指南 | 介绍将i.MX Linux BSP移植到自定义板或平台的步骤。 |
i.MX Linux参考手册 | 介绍i.MX BSP Linux内核驱动程序、功能以及如何配置内核。另外还介绍了驱动程序是如何工作的。 |
i.MX Linux图形用户指南 | 介绍如何为自定义用例测试和配置GPU。 |
访问i.MX 8摄像头用例,了解更多信息:
借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:本教程将逐步说明如何使用i.MX 8M Mini EVKB在Linux上连接到互联网:
# ifconfig eth0
# 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
访问i.MX 8M Mini EVK显示器选型指南,了解更多:
借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:
简单音频示例
将耳机插入 i.MX 8M Mini EVKB板上的音频插孔。
如果您的耳机包含麦克风功能(带有四个触点的TRRS),请不要将麦克风插孔推到底。在外面留一个接触环。
# gst-launch-1.0 audiotestsrc ! alsasink Setting pipeline to PAUSED ... 将管道设置为PREROLLING... 重新下发延迟... 将管道设置为PREROLLED... 将管道设置为PLAYING ... 新时钟:GstAudioSinkClock
在耳机里应该能听到提示音。
听完提示音后,按下kbd:[Ctrl+C],完成命令行
本示例非常简单易懂。它显示了audiotestsrc
和alsasink
之间的链路。
解码器视频音频
本示例说明如何只解码视频文件中的音频。将视频文件复制到您的SD卡rootfs分区上的/home/root/
,从SD卡启动板,然后运行下面的命令:
注:您可从Big Buck Bunny网站免费获得本示例中使用的文件。
# 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! 没有更多的媒体文件,退出gplay!状态改变:stopped Exit display thread FSL_PLAYER_UI_MSG_EXIT fsl_player_deinit
GStreamer
请访问i.MX 8 Gstreamer用户指南,了解如何在 i.MX 8M Mini EVKB上使用Gstreamer 1.0版本的更多信息。
网络社区帖子还包括以下内容:
i.MX 8M Mini功耗测量应用笔记可帮助开发人员设计能源管理系统。
本应用笔记还说明了以下内容:
借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:本示例显示如何挂起到低功耗模式并恢复正常操作。
# echo enabled > /sys/class/tty/ttymxc0/power/wakeup
# echo mem > /sys/power/state PM: suspend entry (deep) PM: Syncing filesystems ... done. 冻结用户空间进程... (用时0.001秒)完成。OOM killer被禁用。冻结剩余的可冻结任务... (用时0.000秒)完成。
挂起控制台(使用no_console_suspend进行调试)
SW901
开关,唤醒板。终端上应出现以下消息: HIFsuspendwow 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
借助i.MX板上运行的Linux,您可以评估i.MX SoC提供的特殊功能:此示例显示了使用CAAM作为恩智浦提供的加密卸载引擎的优势。
CAAM和CryptoDev
与许多恩智浦i.MX处理器一样,i.MX 8M Mini EVK板包含加密加速与保证模块(CAAM模块),可通过CryptoDev使用,借助硬件加快加密和解密过程。建议在处理大量数据时或在性能要求较高的任何应用中使用此模块。
检查速度性能
aes-128-cbc
,实现高级加密标准(AES)加密算法,支持密码块链(CBC)运行模式和128位块。 使用以下命令可观看OpenSSL速度测试:
# 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 232182.68k 614157.10k 1007453.41k 1258300.45k 1352108.71k
使用下面的命令可列出CryptoDev支持的加密算法:
# openssl engine cryptodev -c (cryptodev) BSD cryptodev engine [RSA, DSA, DH, DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, BF-CBC, hmacWithMD5, hmacWithSHA1, RIPEMD160, MD5, SHA1]
有用的应用笔记
使用CAAM安全密钥的i.MX加密存储本应用笔记提供了使用DM Crypt在块级别运行透明存储加密的步骤,该加密利用i.MXs加密加速器和保证模块(CAAM)提供的安全密钥功能。
i.MX 8M和i.MX 8M Mini上的增强型OpenSSL本应用笔记介绍了如何在OpenSSL之上使用加密加速器和保证模块(CAAM)添加对加速OP-TEE OS的支持。最终的结果是增强型OpenSSL能够通过OP-TEE以安全的方式加速加密算法。
想要更多地了解如何使用i.MX 8M Mini吗?请查看我们提供的各种培训产品,从在线微型技术课程到动手实践的深入培训,获得帮助。
在恩智浦的一个社区网站上,可与其他工程师交流,获取专家建议,了解如何使用i.MX 8M Mini应用处理器进行产品设计。
在Linux主机的命令提示符上,运行以下命令,确定端口号:
$ ls /dev/ttyUSB*
较小的数适用于Arm® Cortex®-A53 内核,较大的数适用于Arm® Cortex®-M7内核。
使用以下命令安装和运行串行通信程序(以minicom
为例):
$ sudo apt-get install minicom
$ sudo minicom /dev/ttyUSB* -s
图3. Minicom配置
i.MX 8M Mini上的FTDI USB串行芯片将枚举两个串行端口。假设这两个端口分别为COM9
和COM10
。较小的端口号( COM9
)适用于来自Arm® Cortex®-A7的串行控制台通信,而较大的端口号(COM10
)适用于Arm®Cortex®-M7内核。串行转USB驱动程序在http://www.ftdichip.com/Drivers/VCP.htm.提供。
注:要确定i.MX板虚拟COM端口的端口号,请打开Windows设备管理器并在端口(COM和LPT)中查找“USB串行端口”
它是一款开源终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口中发送的信息。
COM
端口号),波特率为115200
,数据位为8
,无奇偶校验且停止位为1
。要进行此操作,进入Setup → Serial Port并更改设置。 i.MX 8M Mini上的FTDI USB串行芯片将枚举两个串行端口。假设这两个端口为COM9
。这表示来自Arm® Cortex®-A53内核的串行控制台通信。串行转USB驱动程序在http://www.ftdichip.com/Drivers/VCP.htm.提供。
注:要确定i.MX板虚拟COM端口的端口号,请打开Windows设备管理器并在端口(COM和LPT)中查找“USB串行端口”
PuTTY是一款广受欢迎的终端仿真应用。此程序显示从恩智浦开发平台的虚拟串行端口中发送的信息。
COM
端口号。还要输入波特率,在本例中,为115200
。 COM
端口,此终端窗口会打开。如果配置不正确,PuTTY将会发出提示。 启动顺序在i.MX 8M Nano参考手册中进行了详细介绍。简言之,i.MX板的启动模式由启动配置开关来控制。
这些开关设置引导介质(具体取决于板,例如SD卡、eMMC、NAND)、串行下载协议模式(SDP)或电熔丝的值设置。
SDP也是引导介质的后备,换句话说,当开关配置为从SD卡启动但SD卡插槽为空,或者SD卡二进制文件内容不可启动时,启动顺序转为SDP启动。
图4. 启动开关设置
下表列出了i.MX 8M Nano UL DDR3L EVK板的启动开关设置。i.MX 8M Nano参考手册和开关附近板上的丝印层也提供相同的信息。
表1. i.MX 8M Nano UL DDR3L EVK可用的启动模式
开关 | SW1101 [D1-D10] |
SW1102 [D1-D10] |
---|---|---|
eMMC/uSDHC3 | 0100xxxxxx | xxxxxxxxxx |
MicroSD/SDHC2 | 1100xxxxxx | xxxxxxxxxx |
NAND闪存 | 0010xxxxxx | xxxxxxxxxx |
SDP | 1000xxxxxx | xxxxxxxxxx |
注:确保启动开关配置为从SD卡启动。