基于IMX6Q的VxWorks7系统功能测试及DKM项目测试

一、工程导入

目的:是将自己做好的工程(uboot工程,VIP工程,DKM工程等)导入到自己的开发环境中使用,这样减少了重新建立工程的配置工作,提升效率。

具体创建编译请参考(一)基于IMX6Q的VxWorks7环境搭建开发指南完整版 此文档基于路径:“C:\Users\Administrator\Desktop\VxWorks7文档及整理资料\workspace”

打开软件:file->import->选择路径并导入即可。

EMMC测试为什么用iozone 手机emmc测试_串口

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_02

EMMC测试为什么用iozone 手机emmc测试_imx_03

导入后可根据需要进行修改image和DKM项目然后重新编译即可使用。

二、uboot烧写

uboot烧写及网络联通性测试备注:uboot制作后面将单独写一篇文章介绍

三、系统安装

第一次更新系統,需要在uboot下通过tftp加载系统映像启动系统,然后在系统下格式化EMMC设备,然后通FTP将系统映像支件拷贝到EMMC文件系统中,重启系统,在uboot命令行下修改启动配置参数从EMMC设备加载系统映像.

EMMC测试为什么用iozone 手机emmc测试_imx_04

非第一次安装,可以直接在系统下通过FTP更新 vxworks系统文件即可,不需要再次格式化EMMC设备,如再次格式化设备,可能会导致数据的丢失.


安装方法如下:


1)将测试用的 vxworks.bin文件拷贝到WINDOWS系统下某一个指定的地方,建议不要使用中文路径;


2)打开tftp服务器软件,该文件是一个FTP的服务端软件,用于网络加载 vxworks系统映像引导启动:


EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_05

拷贝进mmc方式1:


3)在uboot下引导安装VxWorks7操作系统


tftp 10100000 vxWorks.bin


go 10100000


EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_06

拷贝进mmc方式2:


3)进入 linux 内核,然后执行如下命令:


EMMC测试为什么用iozone 手机emmc测试_加载_07

进入此目录下(/run/media/mmcblkp1),使用tftp命令将vxWorks.bin:拷贝到emmc分区中(此处192.168.0.129为主机IP):


EMMC测试为什么用iozone 手机emmc测试_串口_08


成功截图:


![在这里插入图片描述](


4)按开发板上reset重启开发板,重启过程中按“空格键”进入uboot,在uboot下重新配置环境变量设置为从emmc设备启动,执行如下配置


EMMC测试为什么用iozone 手机emmc测试_串口_09

备注:设置环境变量配置启动方式
Linux:
setenv bootargs "root=/dev/mmcblk3p2 console=ttymxc3,115200 rw rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24"
setenv bootcmd "fatload  mmc  2:1  0x10000000  zImage;fatload  mmc  2:1  0x20000000  imx6q-sabresd.dtb;  bootz  0x10000000  -  0x20000000"
vxworks:
setenv bootargs "enet(0,0)host:vxWorks h=192.168.1.11 e=192.168.1.200:ffffff00 u=target pw=target"
setenv bootcmd "fatload  mmc  2:1  0x10100000  vxWorks.bin; go 0x10100000"

5)使用命令run bootcmd或者重启开发板即可启动系统。

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_10

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_11

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_12

Uboot系统镜像加载部分参考来源:
1.uboot中利用TFTP和NFS加载内核镜像和根文件系统:

2. UBOOT 通过 TFTP 下载 uImage:
3. uboot通过tftp来启动内核:
4. IMX6Q 运行 vxWorks 7.0 系统:

四、功能测试

4.1 硬盘测试

IMX6Q的配置可以用类似于EMMC和SD的测试方法测试即可。

EMMG和SD外设的测试,可以在命令行下执行copy命令来测试。

测试方法如下:

1)插入一个U盘设备,系统可以识别到该设备为/bd0

插入后没有识别先检查驱动有没有添加,如下:

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_13

EMMC测试为什么用iozone 手机emmc测试_加载_14

可以识别直接进入下一步操作。

执行如下命令测试EMMC写功能:

-> copy  “/bd0/test.dat”, “/mmc2:1/test.dat”

3)执行如下命令测试EMMG读功能:

-> copy “/emmc2:1/test.dat”, “/bd0/test.dat1”

4)将U盘拔下,插入到PC电脑,通过 beyondCopare等比较软件比较,如果数据一致则说明文件系统功能正常,SD卡的读写测试方法类同。

4.2网卡测试

本嵌入式主板支持一路千兆网卡,网卡的测试通过PING包测试。

1)测试方法如下:

2)在VxWorks系统下执行ifconfig命令,查看当前网卡是否已绑定ip协议栈。如果存在可以使用ping命令测试与同网段其他设备联通性,本测试测试采用与主机的联通性。

注意:开发板中使用ping命令需要给IP加上双引号否则出错,本例中后面的IP后面数字3代表测试3次即可。

EMMC测试为什么用iozone 手机emmc测试_串口_15

EMMC测试为什么用iozone 手机emmc测试_vxworks_16

3)如果上一步没有找到 (名字可能不同)enet0,请执行如下操作:

-> ipAttach 0,”enet”

如果上述命令返回失败,则表示系统中没有加载网卡驱动,则需要检查系统测试映像是否加载正确。

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_17

EMMC测试为什么用iozone 手机emmc测试_串口_18

4)配置iP地址

-> ifconfig “ enet0 192.168.0.200 up”  //启动网卡命令

5)从开发主机 PING vxworks网口,ping通即可。

4.3串口测试

串口测试只针对RS232模式接收和发送测试,RS485模式不做测试。

测试方法如下:

1)确认系统下串口设备是否存在

EMMC测试为什么用iozone 手机emmc测试_imx_19

EMMC测试为什么用iozone 手机emmc测试_vxworks_20

温馨提示:

1)上表中串口物理实体,是指的嵌人犬主板上的丝印编号; 上表中测试程序序号,将在下文中
comsend函数的第一个参数处用到,注意,不是从0开始。
2)串口测试动态库文件名为 dkm_test_com.out
将该文件通过FTP工具上传到/mmc2:1设备中,并加载该动态库文件到内存
> ->ld <mmc2:1/dkm_test_com.out 此处使用FileZilla软件点击文件按照下图输入对应开发板IP连接即可传输文件。

EMMC测试为什么用iozone 手机emmc测试_imx_21

EMMC测试为什么用iozone 手机emmc测试_vxworks_22

3)发送数据测试


将每个串口用线缆分别连接到开发主机的串口上,然后执行如下测试:

-> comsend 1,115200,1000

说明:


第一个参数:串口设备序号,从1开始,数字1对应UART2,依此类推。第二个参数:波特率,这里使用的测试波特率为115200bps。第三个参数:发送字符串的条数。


4)接收数据测试:

-> recvTask 1,115200

说明:


第一个参数:串口设备序号,从1开始,数字1对应UART2,依此类推;第二个参数:波特率,这里使用的测试波特率为115200bps当有数据接收到后,会显示当前接收数据的总大小。

EMMC测试为什么用iozone 手机emmc测试_imx_23

备注:如果出现ftp无法连接,首先检查开发板IP是否正确;其次就是ftp驱动组件是否正确添加并修改。

EMMC测试为什么用iozone 手机emmc测试_imx_24

上图中标识1为需要修改的回调函数名:usrAuthenticateCallback;标识2要对应开发板分区名;修改完配置需要重新编译image再重新安装VxWorks.bin;

EMMC测试为什么用iozone 手机emmc测试_imx_25

4.4DKM项目测试

4.1 在之前新建的DKM中添加测试代码并编译完成如下图:

EMMC测试为什么用iozone 手机emmc测试_imx_26

4.2 将.out文件拷贝到/mmc2:1或者/mmc2:2设备中,可采用如下3种方式:

方式1:FTP拷贝
使用方法和winsows系统一致。注意,在使用之前,请先在系统下将当前路径设置到/mmc2:1或/mmc2:2(在系统下,执行devs后查看当前的具体设备名)

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_27

方式2:U盘拷贝
->copy“/bd0/test.out”,“/mmc0:1/test.out”
方式3:通过网络拷贝
->copy“host:test.out”,“/mmc0:1/test.out

4.3 执行动态加载,命令如下: ->ld </mmc2:1/dkm_test_project.out 4.4运行,命令如下:(此处start为DKM中.c中的函数名) ->start

EMMC测试为什么用iozone 手机emmc测试_加载_28

备注: 1、ARMARCH7gru平台下,需要注意添加编译选项-
mlong-calls,否则生成的.out文件在运行的过程中,提示如下错误。

EMMC测试为什么用iozone 手机emmc测试_EMMC测试为什么用iozone_29

添加方式为:DKM项目-》属性

EMMC测试为什么用iozone 手机emmc测试_加载_30

2、在系统下执行动态加载命令的时候,请使用.out在 vXWorks系统目录下的绝对路径,防止出错。