前 言
本文适用开发环境:
Windows 开发环境: Windows 7 64bit 、Windows 10 64bit
Linux 开发环境: Ubuntu 14.04.3 64bit
虚拟机: VMware15.1.0
U-Boot :U-Boot-2017.01
Kernel :Linux-4.9.0 、Linux-RT-4.9.0
进行本文档操作前,请先按照调试工具安装、Linux 开发环境搭建相关文档,安装 SecureCRT 串口调试终端、 VMware 虚拟机、PetaLinux 等相关软件。
本文档主要提供评估板硬件资源测试方法。无特殊说明情况下, 默认使用 UART1(USB TO UART)作为调试串口,使用 Linux 系统启动卡启动系统,通过路由器与 PC 机进行网络 连接。
测试板卡是基于创龙科技Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板。
1 评估板快速测试
1.1 系统启动测试
接入电源,并使用 Micro USB 线连接 PC 机和评估板的调试串口 CON5(USB TO UART), CON5 为 PS 端与 PL 端二合一调试串口。
图 1
打开设备管理器,确认评估板 PS 端(Enhanced COM Port)和 PL 端(Standard COM Port)
调试串口对应的 COM 端口号。
图 2
图 3
打开串口调试终端 SecureCRT,选择对应的 COM 端口号,设置波特率为 115200,8N1 ,
无检验位。 建立串口连接,如下图所示。
图 4
将 Linux 系统启动卡插入评估板 Micro SD 卡槽,根据评估底板丝印将拨码开关拨为
101001(1~6),此档位为 SD 卡启动模式。 将评估板上电启动, 串口调试终端将会打印如下
类似启动信息。
图 6
核心板 LED 在系统启动过程中的变化说明如下:
评估板上电后, 电源指示灯 LED4 点亮; 随后 FSBL(一级 Bootloader 程序) 启动, LED1
点亮;紧接着 U-Boot 启动 (二级 Bootloader 程序) ,LED2 点亮;直到内核启动运行时,
LED2 熄灭, LED1 进行心跳闪烁; 读写 eMMC 时, LED2 闪烁。
图 7
系统启动后会自动登陆 root 用户,说明使用 Linux 系统启动卡启动评估板成功。
图 8
如需从 SPI FLASH + eMMC 启动评估板,请执行如下脚本命令一键固化 Linux 系统至 SPI FLASH + eMMC。
Target# /opt/tools/mkemmcboot.sh
图 9
图 10
用时约 3min ,SPI FLASH + eMMC 成功固化 Linux 系统,同时串口调试终端打印提示 信息。将评估板断电,将 Linux 系统启动卡从评估板 Micro SD 卡槽中取出,根据评估底
板丝印将拨码开关拨为 100101(1~6) ,此档位为 SPI FLASH 启动模式。 将评估板上电启 动, 即可从 SPI FLASH + eMMC 启动系统。
1.2 文件传送测试
PC 机和评估板之间传送文件的常见方式如下:
(1) 通过 Linux 系统启动卡、 U 盘等存储介质方式拷贝。
(2) 通过 NFS 、TFTP 、OpenSSH 等网络方式拷贝。
1.2.1 通过 Linux 系统启动卡
将配套的系统启动卡插到 PC 机,然后把需要拷贝到评估板的文件复制到系统启动卡 的 BOOT 分区,如下图所示。
图 11
将系统启动卡插到评估板,启动系统并执行如下命令查看分区信息。系统启动卡的
BOOT 分区挂载在评估板文件系统"/run/media/mmcblk0p1/"目录下。
Target#
Target#
df
ls /run/media/mmcblk0p1
图 12
1.2.2 通过 OpenSSH
OpenSSH 是 SSH(Secure Shell)协议的免费开源实现。SSH 协议族可用来进行远程控制, 或在计算机之间传送文件,评估板文件系统默认已支持 SSH 库。
在 Ubuntu 中执行如下命令,查询是否已安装OpenSSH 。
Host# ssh -v
图 13
可看到系统已自带 OpenSSH。如未安装,请先自行正确安装 OpenSSH。
将评估板 MIO RGMII0 ETH 网口通过网线连接到路由器。在评估板上执行如下命令可
自动获取到 IP,如下图所示。 "-i"用于指定网卡, eth0 为网卡名字, 请根据实际情况修改。
Target# udhcpc -i eth0
图 14
执行如下命令可查询 IP 地址。本次查询到的 IP 地址是 192.168.1.160。
Target# ifconfig
图 15
(1) 使用 OpenSSH 从 PC 机传送文件到评估板
执行如下命令在 Ubuntu 中新建文件 test1,并使用 OpenSSH 命令将 test1 文件拷贝到
评估板文件系统根目录。
Host# touch test1 //新建文件
Host# scp test1 [email protected]:/
图 16
如出现提示"Are you sure you want to continue connecting (yes/no)?",请输入: yes。 在评估板上执行如下命令可看到从 PC 机拷贝过来的文件,如下图所示。
Target# ls /
图 17
(2) 使用 OpenSSH 从评估板传送文件到 PC 机
执行如下命令在评估板文件系统根目录新建一个测试文件 test2。
Target#
Target#
cd /
touch test2
//新建文件
图 18
在 Ubuntu 上执行如下 OpenSSH 命令将评估板测试文件 test2 拷贝到 PC 机
"/home/tronlong/test/"目录下。如果传输的是文件夹,请在 scp 后面添加参数"-r" 。
Host# sudo scp [email protected]:/test2 /home/tronlong/test/
Host# ls /home/tronlong/test/
图 19
(3) 使用 OpenSSH 登录到评估板文件系统
在 Ubuntu 执行如下命令可通过OpenSSH 登录评估板文件系统。
Host# sudo ssh [email protected]
图 20
如需退出登陆,请执行 exit 或者 logout 命令。
1.3 LED 测试
执行如下命令控制 LED1 的亮灭。
Target#
Target#
echo 0 > /sys/class/leds/user-led0/brightness //控制 LED1 灭
echo 1 > /sys/class/leds/user-led0/brightness //控制 LED1 亮
图 21
1.4 KEY 测试
执行如下命令查看按键事件号。
Target# cat /proc/bus/input/devices
图 22
从上图中可看到按键事件号为 event0 ,执行如下命令进行按键测试。
Target# od -x /dev/input/event0
按下 KEY1 按键,可看到如下打印信息。按"Ctrl + C"可终止测试命令。
图 23
1.5 DDR 读写测试
Linux 系统启动时, 在 U-Boot 阶段完成 DDR 的初始化, 并打印 DDR 实际容量, 如下 图所示。
图 24
DDR 读写速度受实际情况影响, 测试速率以具体情况为准, 如下测试数据仅供参考。 (1) DDR 读速度测试
执行如下命令对 DDR 读速度测试。
Target# bw_mem 100M rd
图 25
测试从 DDR 中读 100MByte 数据,可看到本次测试的读速度约为: 640.36MB/s。
(2) DDR 写速度测试
执行如下命令对 DDR 写速度测试。
Target# bw_mem 100M wr
图 26
测试写 100MByte 数据到 DDR 中,可看到本次测试的写速度约为: 537.57MB/s。
(3) DDR 拷贝速度测试
执行如下命令对 DDR 拷贝速度测试。
Target# bw_mem 100M cp
图 27
测试拷贝 100MByte 数据到 DDR 中,可看到本次测试的拷贝速度约为: 271.38MB/s 。
1.6 SD 卡读写测试
本小节使用评估板配套的 Linux 系统启动卡来测试 SD 卡的读写速度。不同的 SD 卡 以及不同大小的测试文件, 对 SD 卡的测试结果会造成一定差异。评估板启动后, Linux 系 统启动卡的 BOOT 分区将会挂载在文件系统"/run/media/mmcblk0p1/"目录下。
Target# ls /run/media/mmcblk0p1
图 28
(1) SD 卡写速度测试
执行如下命令测试 SD 写速度。
Target# time dd if=/dev/zero of=/home/root/test bs=1024K count=200 conv=fsync
time 命令有计时作用, dd 用于复制,从 if(input file)文件读出,写到 of(output file)指 定的文件, bs 是每次写块的大小, count 是读写块的数量。
"if=/dev/zero"不产生 IO ,即不断输出数据,可用来测试纯写速度。
图 29
此处一共写 200MByte 测试数据到 SD 卡的 test 文件,可看到本次测试的 SD 卡写速 度约为: 200/15.502=12.90MB/s。
(2) SD 卡读速度测试
重启评估板, 进入文件系统, 执行如下命令测试 SD 卡读速度。
Target# time dd if=/home/root/test of=/dev/null bs=1024K
"of=/dev/null"不产生 IO ,即不断接收数据,可用来测试纯读速度。
图 30
此处从 test 文件中一共读出200MByte 的数据,可看到本次测试的 SD 卡读速度约为: 200/9.121=21.93MB/s。
1.7 eMMC 读写测试
需对 eMMC 设备进行分区后方可对其进行读写测试。评估板出厂时,默认已完成
eMMC 设备分区工作,执行如下命令可查看 eMMC 容量以及分区信息。
Target# dmesg | grep mmcblk1
图 31
其中 boot 分区在评估板文件系统挂载路径为"/run/media/mmcblk1p1" ,rootfs 分区 在评估板文件系统挂载路径为"/run/media/mmcblk1p2",执行如下命令可查看挂载情况。 Target# df
图 32
(1) eMMC 写速度测试
执行如下命令对 eMMC 设备写速度测试。
Target# time dd if=/dev/zero of=/run/media/mmcblk1p2/test bs=1024K count=200
conv=fsync
图 33
此处一共写 200MByte 测试数据到 eMMC 设备 rootfs 分区下的 test 文件,可看到本 次测试的 eMMC 设备写速度约为: 200/16.528=12.10MB/s。
(2) eMMC 读速度测试
重启评估板,进入文件系统,执行如下命令对 eMMC 设备读速度测试。
Target# time dd if=/run/media/mmcblk1p2/test of=/dev/null bs=1024K
图 34