MY-IMX6 Linux-3.14 测试手册

来自明远智睿的wiki
跳转至: 导航搜索

目录

测试前的准备


1)请按照《Linux快速启动手册》中的“Linux快速启动” -> “连接设备”进行连接。
2)请按照《Linux快速启动手册》中的“Linux快速启动” -> “启动设备”进行启动。

测试项目


网口测试

MY-IMX6-EK200支持两个百兆网口。
MY-IMX6-EK314支持一个千兆网口,一个百兆网口。

接口属性

评估板型号 接口位置 接口速率标准 系统接口
MY-IMX6-EK200 P4 10/100Mbps eth0
P3 10/100Mbps eth1
MY-IMX6-EK314 U12 10/100/1000Mbps eth0
P1 10/100Mbps eth1

测试方法

1)配置计算机IP
设置计算机有线网卡IP为192.168.18.18
MY-IMX6 Linux-3.14 2.1.2.1 .png

2)Eth0连接测试

  • 连接网线:将评估板“eth0”对应的接口与计算机有线网卡的接口用网线相连接
  • 设置评估板IP:

# ifconfig eth0 192.168.18.36    # configure the eth0

  • 执行测试命令:

# ifconfig eth1 down      # eth1 to be shut down
# ping 192.168.18.18 -c 2 -w 4  # send ICMP to HOST

  • 观察测试结果:系统会输出类似如下信息:

--- 192.168.18.18 ping statistics ---
2packets transmitted, 2 packets received, 0% packet loss

  • 测试结果:“0% packet loss”表示测试通过
  • 附图

MY-IMX6 Linux-3.14 2.1.2.2.png

3) Eth1连接测试

  • 连接网线:将网线插入“eth1”对应的评估板接口,网线另一端保持与计算机有线网卡的接口连接。
  • 设置第2个网口IP:

# ifconfig eth1 192.168.18.27  # configure the eth1

设置后系统会输出第2个网口的工作状态信息,类似如下:
smsc95xx 1-1.1:1.0 eth1: link up, 100Mbps, full-duplex, lpa 0x4DE1

  • 执行测试命令:

# ifconfig eth0 down      # eth0 to be shut down
# ping 192.168.18.18 -c 2 -w 4      # send ICMP to HOST

  • 观察测试结果:系统会输出类似如下信息:

--- 192.168.18.18 ping statistics ---
2packets transmitted, 2 packets received, 0% packet loss

  • 测试结果:“0% packet loss”表示测试通过
  • 附图

=MY-IMX6 Linux-3.14 2.1.2.3.png


USB测试

接口属性

评估板型号 接口位置 接口速率标准
MY-IMX6-EK200 J8 480 Mbits/s
MY-IMX6-EK314 J2 480 Mbits/s


测试方法

1) 开始测试
将USB设备插入底板USB接口,系统会输出类似如下信息:
usb *-*.*: new high speed USB device number * using fsl-ehci
……

2) 测试结束
将USB设备从底板拔出,系统会输出类似如下信息:
usb *-*.*: USB disconnect, device number *

附图

说明:在USB口上插拔U盘时,系统输出信息类似如下:
MY-IMX6 Linux-3.14 2.2.3.1 .png

SD卡测试

接口属性

评估板型号 接口位置 接口类型
MY-IMX6-EK200 J8 SD
MY-IMX6-EK314 J25 SD


开始测试

1) 往SD卡槽插入设备
插入SD卡到底板SD卡接口。系统输出以下信息(见附图)即表示SD接口正常:
mmc*: new high speed SD card at address ****
mmcblk*: mmcx:xxxx SA**G *.**GiB
mmcblk*: p*

2)从SD卡槽弹出设备
再次住SD卡槽按下SD卡,底板会弹出SD卡。系统输出以下信息(见附图)表示SD卡接口弹出正常:
mmc*: card **** removed

3) 结束测试
SD卡弹出后拨出SD卡即结束测试。

附图

MY-IMX6 Linux-3.14 2.3.3.1 .png

音频测试

测试说明

这项测试是通过播放音频文件验证评估板的音频功能。

测试方法

1)准备测试

2)执行测试
使用aplay播放一个视频,示例命令如下:
# aplay /unit_tests/audio8k16S.wav
上面这条命令会使用aplay播放命令中指定的文件。

3)测试结果
执行上面的测试命令后会听到音频设备输出的声音。

附图

MY-IMX6 Linux-3.14 2.5.3.1 .png


视频测试

测试说明

这项测试是通过播放视频验证评估板的音频视频功能。

测试方法

使用gplay播放一个视频,示例命令如下:
# gplay-1.0 /unit_tests/akiyo.mp4
上面这条命令会使用gplay播放命令中指定的文件。

  • 测试结果

执行上面的测试命令后会在评估板显示屏上看到大约1秒钟的视频图像。

附图

MY-IMX6 Linux-3.14 2.6.3.1 .png

标准GPIO测试

接口属性

MY-IMX6-EK200
IO序号 GPIO属性 接口位置 接口位置 GPIO属性 IO序号
-- gpio-leds J4:3 J4:4 GPIO6_IO11 171
-- gpio-leds J4:5 J4:6 GPIO2_IO26 58
10 GPIO1_IO10 J4:7 J4:8 GPIO1_IO20 20
-- gpio-leds J4:9 J4:10 GPIO3_IO21 85
-- gpio-leds J4:11 J4:12 GPIO3_IO22 86
11 GPIO1_IO11 J4:13 J4:14 NC NC
192 GPIO7_IO00 J21:12 J21:11 GPIO3_IO30 94
MY-IMX6-EK314 & MY-IMX6-EK336
IO序号 GPIO属性 接口位置 接口位置 GPIO属性 IO序号
2 GPIO1_IO02 J23:11 J23:12 GPIO3_IO30 94
193 GPIO7_IO01 U14:3 U14:4 GPIO7_IO00 192
177 GPIO6_IO17 U14:5 U14:6 GPIO6_IO18 178
176 GPIO6_IO16 U14:7 U14:8 GPIO2_IO07 39
35 GPIO2_IO03 U14:9 U14:10 GPIO2_IO06 38
169 GPIO6_IO09 U14:11 U14:12 GPIO6_IO11 171
34 GPIO2_IO02 U14:13 U14:14 GPIO2_IO00 32
36 GPIO2_IO04 U14:15 U14:16 GPIO2_IO05 37
29 GPIO1_IO29 U14:17 U14:18 GPIO1_IO27 27
30 GPIO1_IO30 U14:19 U14:20 GPIO1_IO26 26
24 GPIO1_IO24 U14:21 U14:22 GND GND
10 GPIO1_IO10 U14:23 U14:24 GPIO1_IO15 15
12 GPIO1_IO12 U14:25 U14:26 GPIO1_IO13 13
11 GPIO1_IO11 U14:27 U14:28 GPIO1_IO14 14
85 GPIO3_IO21 U14:29 U14:30 GPIO3_IO22 86
GND GND U14:31 U14:32 GND GND
-- gpio-leds U14:33 U14:34 gpio-leds --
20 GPIO1_IO20 U14:35 U14:36 gpio-leds --
116 GPIO4_IO20 U14:37 U14:38 gpio-leds --


测试方法

1)GPIO输出测试

  • 设置需要测试的GPIO的IO序号

# OUT_IO_NUMBER=85

  • 导出GPIO

# echo ${OUT_IO_NUMBER} > /sys/class/gpio/export

  • 设置GPIO方向

# echo out > /sys/class/gpio/gpio${OUT_IO_NUMBER}/direction

  • 控制输出电平

# echo 0 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value
# echo 1 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value
MY-IMX6 Linux-3.14 2.7.2.1 .png

2)GPIO输入测试

  • 设置需要测试的GPIO的IO序号

# IN_IO_NUMBER=86

  • 导出GPIO

# echo ${IN_IO_NUMBER} > /sys/class/gpio/export

  • 设置GPIO方向

# echo in > /sys/class/gpio/gpio${IN_IO_NUMBER}/direction

  • 查看输入电平

cat /sys/class/gpio/gpio${IN_IO_NUMBER} /value
MY-IMX6 Linux-3.14 2.7.2.2 .png

3)验证输入输出
注意:这一步需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。
将前面配置的输出IO对应的管脚与配置的输入IO对应的管脚连接。即:在MY-IMX6-EK200上连接J4:10 - J4:12,在MY-IMX6-EK314上连接U14:29 - U14:30。

  • 查看输入管脚上的电平

# cat /sys/class/gpio/gpio${IN_IO_NUMBER}/value

  • 更改输出管脚的输出电平

# echo 1 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value

  • 查看输入管脚上的电平

# cat /sys/class/gpio/gpio${IN_IO_NUMBER}/value
MY-IMX6 Linux-3.14 2.7.2.3 .png


GPIO-LED测试

接口属性

MY-IMX6-EK200 MY-IMX6-EK314
接口位置 GPIO属性 LED属性 接口位置 GPIO属性 LED属性
J4:3 gpio-leds heartbeat U14:24 gpio-leds heartbeat
J4:5 gpio-leds timer U14:28 gpio-leds timer
J4:9 gpio-leds default-on U14:26 gpio-leds default-on
J4:11 gpio-leds gpio U14:25 gpio-leds gpio


GPIO-LED(Heartbeat)测试

系统启动完成后,用示波器检测heartbeat对应的接口,可看到如下类似信号:
MY-IMX6 Linux-3.14 2.8.2.1 .png
提示:heartbeat是与CPU心跳关联的,如果在此GPIO上接上LED,即可通过观察LED来判断CPU是否工作。

GPIO-LED(Timer)测试

系统启动完成后,用示波器检测timer对应的接口,可看到如下类似信号:
MY-IMX6 Linux-3.14 2.8.3.1 .png
通过delay_off、delay_on来控制高低电平持续的时间。
# echo 500 > /sys/class/leds/led-timer/delay_off
# echo 1000 > /sys/class/leds/led-timer/delay_on
再用示波器检测的时候,会看到波形发生的变化。

GPIO-LED(Default ON)测试

Default-on可以通过brightness控制。
Default-on的实现是初始触发状态为on,即初始触发后为高电平。
# echo 1 > /sys/class/leds/Default/brightness
往brightness写0即可检测到低电平。
# echo 0 > /sys/class/leds/Default/brightness


GPIO-LED(GPIO)测试

GPIO的测试可以使用跟default-on类似的方法:
# echo 1 > /sys/class/leds/gpio1_12/brightness
使用万用表测试LED:gpio对应的引脚,可以看到该引脚是高电平。
# echo 0 > /sys/class/leds/gpio1_12/brightness
使用万用表测试LED:gpio对应的引脚,可以看到该引脚是低电平。

GPIO-KEY测试

接口属性

MY-IMX6-EK200 MY-IMX6-EK314
接口位置 GPIO属性 KEY属性 接口位置 GPIO属性 LED属性
SW2 gpio-keys Power Button SW4 gpio-keys Power Button
SW3 gpio-keys Volume Up SW3 gpio-keys Volume Up
SW5 gpio-keys Volume Down SW2 gpio-keys Volume Down


测试方法

1)执行测试程序
在终端下键入命令执行测试,示例如下:
# evtest

2)选择测试设备
Select the device event number [0-2]: 2
输入“gpio-keys”对应的序号,这里是2
MY-IMX6 Linux-3.14 2.9.2.1 .png

3)进行交互测试
在终端会看到“Testing ... (interrupt to exit)”,这时我们按下或松开SW4、SW3、SW2。会看到如下类似信息:
Event: time 1452590477.115958, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1452590477.115958, -------------- SYN_REPORT ------------
Event: time 1452590478.415953, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
其中“value 1”信息是在按键被按下的时候被输出,“value 0”信息是在按键被松开的时候被输出。
MY-IMX6 Linux-3.14 2.9.2.2 .png

3)结束测试
按计算机上的“Ctrl”+“C”可结束按键测试程序。

串口测试

MY-IMX6-EK200共5个串口,其中1个调试串口,4个用户串口。
MY-IMX6-EK314共5个串口,其中1个调试串口,4个用户串口。


用户串口属性

评估板型号 UARTx Rx Tx 系统接口
MY-IMX6-EK200 UART2 J1:9 J1:7 ttymxc1
UART3 J1:13 J1:11 ttymxc2
UART4 J1:17 J1:15 ttymxc3
UART5 J1:16 J1:18 ttymxc4
MY-IMX6-EK314 UART2 J12:9 J12:10 ttymxc1
UART3 J12:12 J12:13 ttymxc2
UART4 J12:17 J12:15 ttymxc3
UART5 J12:16 J12:18 ttymxc4

提示:这里列出串口的收发管脚,串口其它管脚的定义请看原理图。

串口测试

1)测试说明

  • 测试方法说明:

采用串口自发自收的方式进行。

  • 测试结果说明:

通过测试程序向串口发送字符串,并输出串口接收到的字符串。
注意:串口测试需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。

2)进入测试程序目录
# cd ~/my-demo/linux-3.14.52

3)UART2测试

  • 准备测试

短接串口2的发送发接收管脚(J1的9和10号)。

  • 执行测试命令

# ./uart.out /dev/ttymxc1 "www.myzr.com.cn"

  • 测试结果附图

MY-IMX6 Linux-3.14 2.10.2.1 .png

4)UART3测试

  • 准备测试

短接串口3的发送发接收管脚(J1的12和13号)。

  • 执行测试命令

# ./uart.out /dev/ttymxc2 "www.myzr.com.cn"

  • 测试结果附图

MY-IMX6 Linux-3.14 2.10.2.2 .png

5)UART4测试

  • 准备测试

短接串口4的发送发接收管脚(J1的15和17号)。

  • 执行测试命令

# ./uart.out /dev/ttymxc3 "www.myzr.com.cn"

  • 测试结果附图

MY-IMX6 Linux-3.14 2.10.2.3 .png

6)UART5测试

  • 准备测试

短接串口5的发送发接收管脚(J1的16和18号)。

  • 执行测试命令

# ./uart.out /dev/ttymxc4 "www.myzr.com.cn"

  • 测试结果附图

MY-IMX6 Linux-3.14 2.10.2.4 .png

RTC测试

测试说明

受快递运输影响,MY-IMX6 系列评估板发货时不带电池。测试RTC前请自备纽扣电池并安装到评估板上。
MY-IMX6-EK200的电池座在底板背面的“BT1”位置。
MY-IMX6-EK314的电池座在底板正面的“BT1”位置。

测试方法

1)断电重启设备,查看当前系统时间和硬件时间。

  • 查看当前系统时钟命令如下:

# date

  • 系统输出信息如下:

Thu Aug 6 05:35:17 UTC 2015

2)查看当前RTC芯片时钟命令如下:
# hwclock

  • 系统输出信息如下:

Thu Aug 6 05:35:59 2015 0.000000 seconds
3)设置系统时钟,并同步到RTC芯片

  • 设置系统时钟命令参考如下:

# date -s "2015-08-20 12:34:56"

  • 将系统时钟写入硬件时钟命令如下:

# hwclok –w
4)断电重启评估板,查看当前系统时钟和硬件时钟
请参考第1步
5)测试结果
执行第3步以后看到的时钟为新设定的时钟。

附图

下图为测试方法中步骤1和2的截图
MY-IMX6 Linux-3.14 2.11.3.1 .png
下图为测试方法中步骤3的截图
MY-IMX6 Linux-3.14 2.11.3.2.png


WatchDog测试

测试说明

WatchDog测试包括2项:一项是复位测试,一项是喂狗测试。

复位测试

1)测试说明
复位测试将启动WatchDog,但是并不喂狗,超时后系统将会复位。

2)执行测试
# /unit_tests/wdt_driver_test.out 10 15 1

3)测试结果
运行测试命令后等待10秒后,WatchDog超时,系统被复位。将会在终端看到系统重新启动输出的信息。
MY-IMX6 Linux-3.14 2.12.2.1 .png

喂狗测试(feed dog test)

1)测试说明
喂狗测试将启动WatchDog,并且每2秒钟进行1次喂狗,系统将不会因为WatchDog超时而复位。

2)执行测试

  • 启动WatchDog

# /unit_tests/wdt_driver_test.out 4 2 1 &

  • 查看当前时间

# date
MY-IMX6 Linux-3.14 2.12.3.1 .png

3)验证

  • 查看当前时间

经过几分钟之后,系统依然没有复位。我们再查看当前时间。
# date

  • 停止喂狗

这时我们终止Watchdog测试程序,这样就没有程序进行喂狗了,系统将会在超时时间(这里是4秒)内复位。
# pkill wdt_driver_test
MY-IMX6 Linux-3.14 2.12.3.2 .png


SPI测试

MY-IMX6-EK200上有两组SPI接口。
MY-IMX6-EK314上有两组SPI接口。

接口属性

测试需要用到SPI接口的MISO和MOSI管脚,在下表中列出。

评估板型号 SPIx MISO MOSI
MY-IMX6-EK200 SPI1 J7:7 J7:9
SPI2 J7:8 J7:10
MY-IMX6-EK314 SPI1 J13:6 J13:12
SPI2 J13:7 J13:11

测试说明

1)采用SPI自发送(输出)自接收(输入)的方式。
注意:测试需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。

2)与SPI测试程序匹配的SPI接口是SPI2,所以我们的SPI测试是测试SPI2。

测试方法

1)准备测试
短接SPI2的MISO和MOSI管脚。
2)执行测试
# ~/my-demo/linux-3.14.52/spidev_test.out -D /dev/spidev1.0
3)测试结果
如果SPI正常,在终端上会看到如下字符:
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D

附图

MY-IMX6 Linux-3.14 2.13.4.1 .png

CAN接口测试

MY-IMX6-EK200上有两组CAN接口。
MY-IMX6-EK314上有两组CAN接口。

接口属性

评估板型号 CANx 信号:CAN_L 信号:CAN_H 系统设备
MY-IMX6-EK200 CAN1 J19:1 J19:2 can0
CAN2 J16:1 J16:2 can1
MY-IMX6-EK314 CAN1 J17:1 J17:2 can0
CAN2 J15:1 J15:2 can1

测试说明

采用CAN1发送,CAN0接收的方式。

测试方法

1)接口连接
注意:这一步需要连接评估板的管脚,如果不确定自己能正确连接的请找硬件工程师支持,否则可能会损坏评估板。
将CAN1的CAN_L与CAN2的CAN_L连接。
将CAN1的CAN_H与CAN2的CAN_H连接。

2)执行测试
配置CAN0
# ip link set can0 up type can bitrate 125000
配置CAN1
# ip link set can1 up type can bitrate 125000
配置CAN0接收
# candump can0 &
CAN1发送
# cansend can1 1F334455#1122334455667788

附图

MY-IMX6 Linux-3.14 2.14.4.1 .png


WIFI测试

insmod ~/my-demo/linux-3.14.52/8188eu-myimx6.ko
insmod ~/8188eu-myimx6.ko
wpa_passphrase WIFI名称 WIFI密码 > /etc/wpa_supplicant.conf
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -B
udhcpc -i wlan0

IPU测试

测试说明

整个IPU测试过程完成需要十几分钟。

测试方法

1)执行测试
进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
# cd /unit_tests/
执行测试脚本
# ./autorun-ipu.sh
2)测试结果
在整个测试过程中,可以看到显示屏显示的内容在不停的变化。
测试完成后,在终端上可以看到类似如下信息:
test stop at Thu Jan 1 00:33:38 UTC 1970

附图

MY-IMX6 Linux-3.14 2.15.3.1 .png

MY-IMX6 Linux-3.14 2.15.3.2 .png

GPU测试

测试说明

验证GPU功能。

测试方法

  • 执行测试命令

# cd /opt/viv_samples/vdk/ && ./tutorial3 -f 100
# cd /opt/viv_samples/vdk/ && ./tutorial4_es20 -f 100
# cd /opt/viv_samples/tiger/ &&./tiger

  • 测试过程

执行测试命令时,可以看到显示屏显示的内容在变化。更多请参照/unit_test/gpu.sh

附图

MY-IMX6 Linux-3.14 2.16.3.1 .png

VPU测试

测试说明

测试过程将使用VPU解码视频文件并输出到显示设备。

测试方法

  • 执行测试

进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
# cd /unit_tests/

  • 执行测试脚本

# ./autorun-vpu.sh

  • 测试现象

在整个测试过程中,从显示屏上可以看到VPU解码的视频。

附图

MY-IMX6 Linux-3.14 2.17.3.1 .png

显示功能测试


  • 特别说明:
    当U-Boot 版本u-boot-2016.03 svn315及以上    
        内核 版本  linux-3.0.35  svn31及以上
                 linux-3.14.52 svn369及以上
                 linux-3.14.52 svn368及以上
        烧录工具   MfgTool-MYIMX6A9-L* svn181及以上    

请参考《MY-IMX6-A9系列:显示功能测试》进行测试


  • 一般情况下则按照如下方法测试

说明:每项显示功能测试都需要重启系统进入到u-boot命令行,输入命令并按确认键。
示例如下:
MY-IMX6 Linux-3.14 3.0.0.1 .png

单屏显示

说明:输入命令并按确定键,观察系统启动过程中显示屏的显示内容,即可看到Linux Logo。

LVDS1

=> setenv display ${fb0_lvds1}
=> saveenv; boot

LVDS0

=> setenv display ${fb0_lvds0}
=> saveenv; boot

HDMI

=> setenv display ${fb0_hdmi}
=> saveenv; boot
注意:如果使用HDMI转VGA的,请确认转接装置是否需要供电。


RGB

=> setenv display ${fb0_lcd}
=> saveenv; boot

双屏同步骤显示

说明:输入命令并按确定键,在内核启动过程中可以看到两个屏幕都显示Linux Logo,并且其它对显示屏的操作也会同样显示在两个屏幕上。


LVDS1+LVDS0同步显示

=> setenv display ${lvds_sync}
=> saveenv; boot

双屏异步显示

导入测试环境变量

# export GSTL=gst-launch-1.0
# export PLAYBIN=playbin
# export GPLAY=gplay-1.0
# export GSTINSPECT=gst-inspect-1.0
# export MP4_FILE="/home/root/test.mp4"

会用到的测试命令

  • 播放视频到主显示屏

# $GSTL $PLAYBIN uri=file://$MP4_FILE video-sink="imxv4l2sink device=/dev/video17"

  • 播放视频到第二显示屏

# $GSTL $PLAYBIN uri=file://$MP4_FILE video-sink="imxv4l2sink device=/dev/video18"

LVDS1作为主屏

  • LVDS1+RGB双屏异步显示

=> setenv display ${fb0_lvds1} ${fb1_lcd}
=> saveenv; boot

  • LVDS1+HDMI双屏异步显示

=> setenv display ${fb0_lvds1} ${fb1_hdmi}
=> saveenv; boot

LVDS0作为主屏

  • LVDS0+RGB双屏异步显示

=> setenv display ${fb0_lvds0} ${fb1_lcd}
=> saveenv; boot

  • LVDS0+HDMI双屏异步显示

=> setenv display ${fb0_lvds0} ${fb1_hdmi}
=> saveenv; boot

RGB作为主屏

  • RGB+LVDS1双屏异步显示:

=> setenv display ${fb0_lcd} ${fb1_lvds1}
=> saveenv; boot

  • RGB+LVDS0双屏异步显示:

=> setenv display ${fb0_lcd} ${fb1_lvds0}
=> saveenv; boot

HDMI作为主屏

  • HDMI+LVDS1双屏异步显示

=> setenv display ${fb0_hdmi} ${fb1_lvds1}
=> saveenv; boot

  • HDMI+LVDS0双屏异步显示

=> setenv display ${fb0_hdmi} ${fb1_lvds0}
=> saveenv; boot

</div>