ARM技术论坛
直播中

Tronlong创龙科技

3年用户 537经验值
擅长:嵌入式技术 存储技术 处理器/DSP EDA/IC设计 MEMS/传感技术 MEMS/传感技术 嵌入式技术 存储技术 EDA/IC设计 处理器/DSP
私信 关注

【资料分享】NXP i.MX 8M Mini评估版测试手册(1)

本帖最后由 Tronlong创龙科技 于 2023-6-15 14:33 编辑

目录
1 评估板快速测试
1.1         系统启动测试
1.2         文件传送测试
1.2.1     通过Linux系统启动卡
1.2.2     通过OpenSSH
1.3         LED测试
1.4         按键测试
1.4.1     用户输入按键测试
1.4.2     CPU ON/OFF按键测试
1.5         时钟设置测试
1.6         DDR读写测试
1.7         MicroSD接口读写测试
1.8         eMMC读写测试
1.9         SPIFLASH读写测试
1.10       PCIe接口测试
1.10.1   SATA接口固态硬盘测试
1.10.2   M.2接口固态硬盘测试

前  言
本案例适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware15.1.0
Linux开发环境:Ubuntu18.04.4 64bit
U-Boot:U-Boot-2020.04
Kernel:Linux-5.4.70
Linux SDK:5.4.70_2.3.0
进行操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机、Linux SDK等相关软件。
本文主要提供评估板的硬件资源测试方法。无特殊说明情况下,默认使用USB TO UART2作为调试串口,使用Linux系统启动卡启动系统,通过路由器与PC机进行网络连接。

本案例采用的评估版为创龙科技TLIMX8-EVM,它是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高性能评估板,由核心板和评估底板组成。ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM Cortex-M4实时处理单元主频高达400MHz。处理器采用14nm最新工艺,支持1080P60 H.264视频硬件编解码、1080P60 H.265视频硬件解码、GPU图形加速器。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出MIPI CAMERA、MIPI/LVDS LCD、HDMI OUT、LINE IN/OUT、PCIe、FlexSPI、USB、RS485、RS232、千兆网口、百兆网口等接口,板载WIFI模块,支持Mini-PCIe4G模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。
                              
评估板正视图


1.1    系统启动测试
接入电源,并使用Micro USB线连接PC机和评估板的USB TO UART2调试串口。打开设备管理器,确认评估板USBTO UART2调试串口对应的COM端口号。

                    
图 1
图 2

打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无校验位。建立串口连接,如下图所示。


图 3

将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将启动方式选择拨码开关拨为11100(1~5),此档位为SD卡启动模式。将评估板上电启动,串口终端会打印如下类似启动信息。


图 4


图 5


图 6

核心板LED在系统启动过程中的变化说明如下:
评估板上电后,电源指示灯LED0点亮;随后U-Boot第一阶段启动,LED1点亮;紧接着U-Boot第二阶段启动,LED2点亮;直到内核启动运行时,LED2熄灭,LED1进行心跳闪烁;eMMC进行读写时,LED2闪烁。
系统启动后会自动登录root用户,说明使用Linux系统启动卡启动评估板成功。


图 7

如需从eMMC启动评估板,请执行如下脚本命令一键固化Linux系统至eMMC。
Target#        /opt/tools/mkemmcboot.sh


图8

用时约5min,eMMC成功固化Linux系统,同时串口调试终端打印提示信息。将评估板断电,将Linux系统启动卡从评估板MicroSD卡槽中取出,根据评估底板丝印将启动方式选择拨码开关拨为00010(1~5),此档位为eMMC启动模式。
将评估板上电,评估板将从eMMC启动U-Boot,然后加载Linux内核、设备树和文件系统。

1.2    文件传送测试
PC机和评估板之间传送文件的常见方式如下:
(1)       通过Linux系统启动卡、U盘等存储介质方式拷贝。
(2)       通过NFS、TFTP、OpenSSH等网络方式拷贝。

1.2.1           通过Linux系统启动卡
将配套的系统启动卡插至PC机,然后把需要拷贝至评估板的文件拷贝至系统启动卡的BOOT分区,如下图所示。


图 9

将系统启动卡插至评估板,启动系统并执行如下命令查看分区信息。系统启动卡的BOOT分区挂载在评估板文件系统“/run/media/mmcblk1p1/”目录下。
Target#        df -h
Target#        ls /run/media/mmcblk1p1



图 10


1.2.2           通过OpenSSH
OpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。
在Ubuntu中执行如下命令,查询是否已安装OpenSSH。
Host#    ssh -v


图 11

可看到系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。
将评估板RGMII ETH网口通过网线连接至路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。“-i”用于指定网卡,eth0为网卡名字,请根据实际情况修改。
Target#        udhcpc -ieth0


图 12

执行如下命令可查询IP地址。本次查询到的IP地址是192.168.0.120。
Target#        ifconfig


图 13

(1)       使用OpenSSH从PC机传送文件至评估板
执行如下命令在Ubuntu中新建文件test1,并使用OpenSSH命令将test1文件拷贝至评估板文件系统根目录。
Host#    touch test1         //新建文件
Host#    scp test1 root@192.168.0.120:/


图 14

如出现提示“Are you sure you want to continue connecting(yes/no)?”,请输入:yes。
在评估板上执行如下命令可看到从PC机拷贝过来的文件,如下图所示。
Target#        ls /


图 15

(2)       使用OpenSSH从评估板传送文件至PC机
执行如下命令在评估板文件系统根目录新建一个测试文件test2。
Target#        cd /
Target#        touch test2


图 16

在Ubuntu上执行如下OpenSSH命令将评估板测试文件test2拷贝至PC机“/home/tronlong/test/”目录下。如传输的是文件夹,请在scp后面添加参数“-r”。
Host#    sudo scp root@192.168.0.120:/test2/home/tronlong/test/
Host#    ls /home/tronlong/test/


图 17

(3)       使用OpenSSH登录到评估板文件系统
在Ubuntu执行如下命令可通过OpenSSH登录评估板文件系统。
Host#    sudo ssh root@192.168.0.120


图 18

如需退出登录,请执行exit或者logout命令。

1.3    LED测试
评估底板LED与GPIO对应关系如下表所示。

表 1
  
USER1
  
  
USER2
  
  
GPIO2_20
  
  
GPIO1_5
  

(1)       逐盏点亮LED
进入评估板文件系统,执行如下命令逐盏点亮、熄灭LED。
Target#        echo 0 >/sys/class/leds/user-led0/brightness        //控制USER1 LED灭
Target#        echo 1 >/sys/class/leds/user-led0/brightness        //控制USER1 LED亮
Target#        echo 0 >/sys/class/leds/user-led1/brightness        //控制USER2 LED灭
Target#        echo 1 >/sys/class/leds/user-led1/brightness        //控制USER2 LED亮


图 19



1.4    按键测试

1.4.1           用户输入按键测试
评估板用户输入按键KEY3对应GPIO1_6。进入评估板系统,执行如下命令查看按键事件号。
Target#        cat /proc/bus/input/devices


图 20

从上图中可看到按键事件号为event1,执行如下命令,按下KEY3进行按键测试,可看到如下打印信息。按“Ctrl + C”可终止测试命令。
Target#        od -x /dev/input/event1


图 21


1.4.2           CPU ON/OFF按键测试
评估板上电启动后,长按CPU ON/OFF按键5s,核心板两个用户指示灯与电源指示灯全灭,系统断电。再长按CPU ON/OFF按键1s,系统重新启动,串口调试终端将会打印如下类似启动信息。


图 22


1.5    时钟设置测试


图 23

Linux系统中分系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。
如需使用RTC时钟,请先安装纽扣电池。CON3为RTC纽扣电池座,适配纽扣电池ML2032(3V可充)、CR2032(3V不可充)。使用可充电电池时,请将跳线帽插入J1实现充电。使用不可充电电池时,请确保无跳线帽插入J1。
如下为时钟相关的常用命令。
(1)       查看系统时钟
Target#        date


图 24

(2)       查看RTC时钟
Target#        hwclock -u


图 25

(3)       设置系统时间
Target#        date -s "2021-03-1016:15:00"    //设置时间:2021年3月10日16点15分00秒
Target#        date


图 26

(4)       同步系统时钟到RTC时钟
Target#        hwclock --systohc -u
Target#        hwclock -u


图 27

(5)       同步RTC时钟到系统时钟
Target#        hwclock --hctosys -u


图 28


1.6    DDR读写测试
Linux系统启动时,在U-Boot的SPL阶段完成DDR的初始化,并打印DDR实际容量,如下图所示。


图 29

DDR读写速度受实际情况影响,测试速率以具体情况为准,如下测试数据仅供参考。
(1)       DDR读速度测试
进入评估板系统,执行如下命令对DDR进行读速度测试。
Target#bw_mem 100M rd


图 30

测试从DDR中读取100MByte数据,可看到本次测试的读速度为2308.88MB/s。
(2)       DDR写速度测试
进入评估板系统,执行如下命令对DDR进行写速度测试。
Target#bw_mem 100M wr


图 31

测试写入100MByte数据至DDR中,可看到本次测试的写速度为1357.81MB/s。
(3)       DDR拷贝速度测试
进入评估板系统,执行如下命令对DDR进行拷贝速度测试。
Target#bw_mem 100M cp


图 32

测试拷贝100MByte数据至DDR中,可看到本次测试的拷贝速度为767.07MB/s。

1.7    Micro SD接口读写测试
本小节使用SanDisk品牌、128GByte容量的Micro SD卡来测试评估板Micro SD接口性能。请参考《Linux系统启动卡制作及系统固化》文档将其制作成Linux系统启动卡再进行测试。不同的Micro SD卡以及不同的测试方法,对Micro SD接口测试结果将造成一定差异。
将Micro SD卡插入评估板Micro SD卡槽,启动方式选择拨码开关拨为00010(1~5),此档位为eMMC启动模式。进入评估板文件系统执行如下命令查看Micro SD卡挂载信息。
Target#df -h


图 33

(1)       Micro SD接口写速度测试
进入评估板文件系统,执行如下命令测试Micro SD接口写速度。
Target#        echo 3> /proc/sys/vm/drop_caches
Target#        time dd if=/dev/zeroof=/run/media/mmcblk1p2/test bs=1024K count=200 conv=fsync
time命令有计时作用,dd用于复制,从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。
“if=/dev/zero”不产生IO,即不断输出数据,可用来测试纯写速度。


图 34

此处一共写200MByte测试数据至Micro SD卡的test文件,可看到本次测试的Micro SD接口写速度约为58.7MB/s。
(2)       Micro SD接口读速度测试
进入评估板文件系统,执行如下命令测试Micro SD接口读速度。
Target#        echo 3> /proc/sys/vm/drop_caches
Target#        time dd if=/run/media/mmcblk1p2/testof=/dev/null bs=1024K
“of=/dev/null”不产生IO,即不断接收数据,可用来测试纯读速度。


图 35

此处从test文件中一共读出200MByte的数据,可看到本次测试的Micro SD接口读速度为86.3MB/s。

1.8    eMMC读写测试
需对eMMC设备进行分区后方可对其进行读写测试。评估板出厂时,默认已完成eMMC设备分区工作,执行如下命令可查看eMMC容量以及分区信息。
Target#        dmesg |grep mmcblk0


图 36

其中boot分区在评估板文件系统挂载路径为“/run/media/mmcblk0p1/”,rootfs分区在评估板文件系统挂载路径为“/run/media/mmcblk0p2/”,执行如下命令可查看挂载情况。
Target#        df -h


图 37

(1)       eMMC写速度测试
进入评估板系统,执行如下命令对eMMC设备进行写速度测试。
Target#        echo 3> /proc/sys/vm/drop_caches
Target#        time dd if=/dev/zeroof=/run/media/mmcblk0p2/test bs=1024K count=200 conv=fsync


图 38

此处一共写200MByte测试数据至eMMC设备rootfs分区下的test文件,可看到本次测试的eMMC设备写速度为9.0MB/s。
(2)       eMMC读速度测试
进入评估板系统,执行如下命令对eMMC设备进行读速度测试。
Target#        echo 3> /proc/sys/vm/drop_caches
Target#        time ddif=/run/media/mmcblk0p2/test of=/dev/null bs=1024K


图 39

此处从test文件中一共读出200MByte数据,可看到本次测试的eMMC设备读速度为171MB/s。

1.9    SPI FLASH读写测试
本小节对评估板底板SPI FLASH的MTD0分区进行读写速度测试。MTD0分区大小为8MByte,读写测试会将该分区内容擦除,请做好数据备份。
执行如下命令加载驱动,查询SPI FLASH分区,确认MTD0分区大小(读写请勿超出分区大小),将该分区内容擦除。
Target#        modprobe spi-nor
Target#        cat /proc/mtd
Target#        flash_erase/dev/mtd0 0 0


图 40

(1)       SPI FLASH写速度测试
进入评估板系统,执行如下命令对SPI FLASH进行写速度测试。
Target#        time dd if=/dev/zeroof=/dev/mtd0 bs=1024k count=8


图 41

       测试写入8MByte数据至SPI FLASH的MTD0分区下,可看到本次测试的SPI FLASH写速度为369KB/s。
(2)       SPI FLASH读速度测试
重启评估板,进入评估板系统,执行如下命令对SPI FLASH进行读速度测试。
Target#        modprobe spi-nor
Target#        cat /proc/mtd
Target#        time dd if=/dev/mtd0 of=/dev/null bs=1024k


图 42

测试从SPI FLASH的MTD0分区读取8MByte数据,可看到本次测试的SPI FLASH读速度为1.4MB/s。

1.10             PCIe接口测试
本章节分别通过PCIe接口读写SATA接口和M.2接口的固态硬盘,测试PCIe接口外接固态硬盘的读写带宽。

1.10.1       SATA接口固态硬盘测试
本小节使用三星品牌、120GByte容量、FAT32格式的SATA接口SSD固态硬盘(以下简称“SATA硬盘”)测试。
评估板断电,将PCIe转SATA模块(品牌:乐扩,型号:IO-PCE9215-4I)插至评估板PCIe SLOT接口,并将SATA硬盘连接至PCIe转SATA模块。测试工具采用fio,fio工具将会清除SATA硬盘的数据,请注意备份数据,建议使用空硬盘进行测试。


图 43

评估板上电,执行如下命令查看是否检测到PCIe和SATA硬盘。
备注:若未能识别到SATA硬盘,请用SATA转USB线,将SATA硬盘连接到PC机查看是否已为FAT32格式。
Target#        lspci
Target#        fdisk -l


图 44

(1)       SATA硬盘写速度测试
Target#        fio -filename=/dev/sda -ioengine=libaio -iodepth=1 -iodepth_batch=1-iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=write -bs=1024K-size=1000M -numjobs=1 -thread -group_reporting -name=write_job -userspace_reap-ramp_time=1 -allow_mounted_write=1
备注:"/dev/sda"为本次的设备号,具体设备号可使用fdisk -l命令查看。


图 45

测试写入1000MByte数据至SATA硬盘中,可看到本次测试SATA硬盘写速度为283MB/s。
(2)       SATA硬盘读速度测试
Target#        fio-filename=/dev/sda-ioengine=libaio -iodepth=1 -iodepth_batch=1 -iodepth_low=1-iodepth_batch_complete=1 -direct=1 -rw=read -bs=1024K -size=1000M -numjobs=1-thread -group_reporting -name=read_job -userspace_reap -ramp_time=1
备注:"/dev/sda"为本次的设备号,具体设备号可使用fdisk -l命令查看。


图 46

测试从SATA硬盘中读出1000MByte数据,可看到本次测试SATA硬盘读速度为233MB/s。

1.10.2       M.2接口固态硬盘测试
本小节使用西数数据SN550、FAT32格式、500GByte容量的M.2接口(NVMe协议)SSD固态硬盘(以下简称“M.2硬盘”)进行测试。
评估板断电,请将M.2硬盘插在PCIe转M.2模块(型号:绿联M.2 NVMe转PCI-E3.0X4扩展卡),然后将PCIe转M.2模块插至评估板PCIe SLOT接口。测试工具采用fio,fio工具将会清除M.2硬盘的数据,请注意备份数据,建议使用空硬盘进行测试。


图 47



图 48 PCIe转M.2模块信号示意图

备注:PCIe转M.2模块信号示意图仅供参考,并非模块的原理图。
评估板上电,执行如下命令查看是否检测到PCIe和M.2硬盘,并可看到插入的M.2硬盘设备节点为“/dev/nvme0n1”。
备注:若未能识别到M.2硬盘,请将M.2硬盘通过PCIe转M.2模块连接至PC机查看是否已为FAT32格式。
Target#        lspci
Target#        fdisk -l


图 49

(1)       M.2硬盘写速度测试
Target#        fio-filename=/dev/nvme0n1 -ioengine=libaio -iodepth=1 -iodepth_batch=1 -iodepth_low=1-iodepth_batch_complete=1 -direct=1 -rw=write -bs=1024K -size=1000M -numjobs=1-thread -group_reporting -name=write_job -userspace_reap -ramp_time=1-allow_mounted_write=1
备注:"/dev/nvme0n1"为本次的设备号,具体设备号可使用fdisk -l命令查看。


图 50

测试写入1000MByte数据至M.2硬盘中,可看到本次测试M.2硬盘写速度为332MB/s。
(2)       M.2硬盘读速度测试
Target#        fio -filename=/dev/nvme0n1 -ioengine=libaio -iodepth=1-iodepth_batch=1 -iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=read-bs=1024K -size=1000M -numjobs=1 -thread -group_reporting -name=read_job-userspace_reap -ramp_time=1
备注:"/dev/nvme0n1"为本次的设备号,具体设备号可使用fdisk -l命令查看。


图 51


测试从M.2硬盘中读出1000MByte数据,可看到本次测试M.2硬盘读速度为209MB/s。



更多回帖

发帖
×
20
完善资料,
赚取积分