EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# T% D- Y8 T T) h" r9 }* J) o
前言# i' h. h8 t' Y4 y) u* O; N
本文适用开发环境:. \" Y6 [7 r3 `# g
Windows 开发环境: Windows 7 64bit 、Windows 10 64bit! W9 P$ V- ?9 M! o( p- H4 D
Linux 开发环境: Ubuntu 14.04.3 64bit
8 }4 p) e l: @' J) H0 v 虚拟机: VMware15.1.0
' S3 b4 g+ D P( s2 v U-Boot :U-Boot-2017.011 Q) R ^. K9 L
Kernel :Linux-4.9.0 、Linux-RT-4.9.0
; j) n, W' T# Q. `8 U7 R# l 进行本文档操作前,请先按照调试工具安装、Linux 开发环境搭建相关文档,安装 SecureCRT 串口调试终端、 VMware 虚拟机、PetaLinux 等相关软件。
- W+ l* o* u& `5 e 测试板卡是基于创龙科技Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板。" d' \3 U6 C6 P8 J
6 u4 H. Z8 P# i
6 s) g g# ]# M9 o1 s7 W. h 本文档主要提供评估板硬件资源测试方法。无特殊说明情况下, 默认使用 UART1(USB TO UART)作为调试串口,使用 Linux 系统启动卡启动系统,通过路由器与 PC 机进行网络 连接。
7 x; L2 @9 B) W+ Y0 ^4 E+ V 1.8 SPI FLASH 读写测试; W6 {4 u9 D8 D7 `: d2 k4 n
本小节对 SPI FLASH 的 MTD3 分区进行读写速度测试。 MTD3 是 SPI FLASH 的用户数据
% U) b8 L4 ^( ] 分区, 分区大小为 31MByte ,读写测试会将该分区内容擦除,请做好数据备份。
2 t: n3 r( ?3 k5 M0 ]' | U2 M 执行如下命令查询 SPI FLASH 分区, 确认 MTD3 分区大小 (读写请勿超出分区大小) , 将该分区内容擦除。
, u; ^9 ^' p% z1 I" n3 _+ c Target# cat /proc/mtd
8 J9 W# Z9 V" t" o Target# flash_erase /dev/mtd3 0 0: V' o. }: k: [( a
![]()
$ o& ^/ |! f: {: c( K图 35 (1) SPI FLASH 写速度测试9 ]/ g2 U$ N+ I+ p
执行如下命令对 SPI FLASH 进行写速度测试。$ u3 x+ c' p' G: _
Target# time dd if=/dev/zero of=/dev/mtd3 bs=1024k count=20% `( O4 [1 w+ r0 C' A
![]()
3 _7 A/ B5 m. _- u图 36 测试写入 20MByte 数据到 SPI FLASH 的 MTD3 分区下, 可看到本次测试的 SPI FLASH
0 J% B3 b- O1 E0 O 写速度约为: 20/55.601=0.36MB/s。
& Q& [# a5 j0 I% K( ?+ e# ?( o- s (2) SPI FLASH 读速度测试
1 ]: F! T, C: {2 V, N( g* @+ ` 重启评估板,进入文件系统, 执行如下命令对 SPI FLASH 进行读速度测试。
( Z* Y7 h, ~! _' u: k! j Target# time dd if=/dev/mtd3 of=/dev/null bs=1024k count=20
0 F7 i& H* `9 B+ ^2 d3 C ![]()
( q4 [/ H% _1 W$ z8 l图 37 测试从 SPI FLASH 的 MTD3 分区读取 20MByte 数据, 可看到本次测试的 SPI FLASH 读 速度约为: 20/1.032=19.38MB/s。
& W* [/ F& P7 ]* W6 f( H7 }4 J 1.9 USB 接口读写测试
: p4 K; Q5 Z, p* M3 K) Z 本小节测试使用 SanDisk 品牌、FAT32 格式、 16G 容量的 U 盘,支持 USB 3.0/2.0。不 同品牌、格式或容量的 U 盘,测试结果会有所差别。1 I9 J* _- C6 ]) b" F+ a8 c2 Y
请将 U 盘插到评估板 USB HOST 接口。插入 U 盘后,评估板会打印如下信息。可看7 q5 a4 [, E ~( M6 ` U$ R5 {
到 U 盘容量和挂载名,如下图所示。
& h4 E$ M; P( U& Q% W 9 g. P$ f! s5 G$ H2 f v p
图 38 从上图可看到 U 盘容量为 15.9GByte,挂载名为 sda1。执行如下命令可查询挂载路( ~" C5 J7 q" h- k9 @
径。挂载名和挂载路径请以实际查询为准, 如下图所示。挂载多个存储设备时, 挂载名可 能会变更。/ U2 j. k% M' P
Target# df -h/ Q* D) ~0 |- t+ }
![]()
0 o |/ ~5 O, z+ n图 39 (1) USB 2.0 写速度测试
( q7 v$ p- | V( X3 Q 执行如下命令,测试 U 盘写速度。
/ ^9 a- N$ u3 F Target# time dd if=/dev/zero of=/run/media/sda1/test bs=1024K count=200
6 j7 a( d3 \! t# }" I: o # r, N; C6 O6 a/ Z. U0 p& C
图 40 此处一共写 200MByte 测试数据到 U 盘的 test 文件, 可看到本次测试的 U 盘写速度 为: 200/16.132=12.40MB/s。
4 q! L* ?/ b% h$ x (2) USB 2.0 读速度测试
0 {/ _2 \$ g! @ ~& a 重启评估板,进入文件系统,执行如下命令测试 U 盘读速度。
; Z9 z, x8 _. A8 w( d+ g9 N Target# time dd if=/run/media/sda1/test of=/dev/null bs=1024K% l3 j0 l; `. L
![]()
k# m. N* _1 I5 o# g图 41 此处从 test 文件中一共读出 200MByte 的数据,可看到本次测试的 U 盘读速度为:, U" K4 z, W1 D- c% d3 m9 P
200/13.531=14.78MB/s。
, k. ~9 u9 \. Y2 I8 s" w' ? 1.10 网络接口测试
7 W1 w: V6 o2 j$ Z1 N& B 评估板配备一个千兆网口 MIO RGMII0 ETH ,用网线将评估板网口连接到路由器,绿 灯常亮、黄灯闪烁表示连接正常。
$ p" }& @- }- Z+ w" u5 c2 q! N$ O 1.10.1 网络连通测试2 w; J- B }3 T
进入评估板文件系统,执行如下命令获取 IP 以及查看网口配置信息。
: V9 `! k- o+ i Target# ifconfig
* G1 _1 P$ W ^; P % {, z" v6 N- a+ Y0 Z$ s+ Y
图 42 如网卡没有自动获取到 IP ,请执行如下命令。
/ S; y* Q" { \ Target# udhcpc -i eth0 //"-i"用于指定网卡, eth0 为网卡名字。+ U5 ^0 E7 M) \( K
1 A: z% g' h1 m$ o
图 43 如网口没有正常连接, 可尝试先关闭网口 (命令为"ifconfig eth0 down") 再打开网口 (命令为"ifconfig eth0 up") 。. E% s9 S. Q; x) C0 m7 [2 c
可使用 ethtool 命令查看网口属性, 并测试网口连接外网是否正常。以访 问6 Y, `1 h, E9 }
www.baidu.com 为例,执行如下命令, "-I"代表指定网口, 不加"-I"则使用默认网卡。可按
0 ~ s& K" n) a% R4 k$ h! v "Ctrl + C"终止测试。网卡名字请根据实际情况修改。
2 V7 t" [) S ]- u Target# ethtool eth0
% P& z3 q) _3 H$ T1 b8 D* c+ ` Target# ping www.baidu.com -I eth0" |* C' q# M: @. _) O0 T: B
$ ^; }1 T5 B3 G
图 44 执行如下命令查看网关,并通过 ping 网关来测试内网连接功能是否正常。
$ ^# S0 z) b$ A" [ Target#
* N: v* }6 d( L& M8 \- O Target#" E5 h- j0 v- E" C
route
& [% Y; E. u. G+ ~9 w ping 192.168.1.1
3 ]7 e( T% P" b( u6 `! P% x5 N 6 Y! \8 e+ P" O6 ]( O1 @
图 45 1.10.2 网络速度测试4 K0 e9 w, D- P! G* k( J, r+ _( C0 O
如下使用 IpeRF 工具测试评估板与 PC 机的网络通信速度。若未安装, 可在 Ubuntu 中 执行"sudo apt-get install iperf"安装。
* e9 D" x2 E e' B 在 Ubuntu 执行如下命令查看 PC 机 IP 地址并等待评估板连接。
- n5 t1 x/ b& Q6 l/ g5 b. h Host# ifconfig) a. a( E/ y' g! k
Host# iperf -s -i 1
- g* b- l* Y. w ![]()
4 g* g7 v: `. P, T图 46 在评估板文件系统执行如下命令测试网络通信速度, 命令中 192.168.1.32 为 PC 机 IP 地址。测试完成后, Ubuntu 和评估板均会打印测试结果。不同测试环境, 测试结果将会 有所差异。1 w# X) X9 w/ z0 S) z- ~' {3 [
Target# iperf -c 192.168.1.32 -i 1
( N/ J) h9 a: g" y" Q* u0 C 网口速度测试结果大致如下:
1 [4 j; H4 w" @ 6 n' s- ^4 ]6 S, [' t1 y
图 47 如使用 RT-Linux 内核进行测试, 将对网口的传输性能产生一定影响, 网口速度测试结 果大致如下。/ B+ `" l3 \0 e j
![]()
4 |9 R$ B( Z7 B4 Q图 48 2 网络静态 IP 设置( @5 f8 o3 Q0 E( J7 x
进入评估板文件系统,执行如下命令修改 interfaces 文件。
7 K+ A, n7 F4 |( ~ e" @) B Target#
+ h' J9 r2 c+ u' Z. G% E Target#
& h6 o$ [, _+ s5 j cd /etc/network
: Z; a, x$ l6 ?7 n. i2 D: @/ f" t7 u vi interfaces
2 {& ?: I0 P( r8 y ![]()
* o8 l8 J2 W M0 c' n图 49 在文件中注释默认配置并添加如下内容, 将网口 IP 设置为 192.168.1.153 ,子网掩码 为 255.255.254.0。子网掩码请按实际情况修改,一般使用 255.255.254.0 或 255.255.255.0。6 F# p4 T% b0 f' @
auto eth0
3 {5 I, a: A7 y2 ~ iface eth0 inet static
! ^. ]7 b& U/ l0 b7 P# V address 192.168.1.153
. n7 p5 B0 s( ^2 Y) R netmask 255.255.254.04 \9 y& ?6 Q% w& K0 U# p% o" V
gateway 192.168.1.1
8 C& k* O# O" d9 l& ~8 k5 A & G% F6 \; v. a* V$ T& H8 f
图 50 请保存退出,并执行如下命令重启网络服务。$ V w; k/ C' p0 x$ x
Target# /etc/init.d/networking restart5 Y* y+ b, e/ ^
r+ R/ d. Y$ m; A2 e
图 51 重启网络服务后,执行如下命令即可看到评估板的 IP 地址,与前面设置的 IP 一致。) `7 W) I o. J+ L0 k
Target#5 Y) a" o& i; [% U
Target#
4 {: z6 O9 R6 e% V ifconfig eth0 up
1 |4 k( K: g9 i+ ?. P9 Z4 S ifconfig* q R) b' n }2 K9 N
![]()
& Q) v' Z5 J( H, r6 A$ q图 52 用网线将评估板的网口连接到路由器, 并启动评估板。进入文件系统后, 检查网口状 态,绿灯常亮、黄灯闪烁表示连接正常。+ w9 V7 w* A+ k
在 Ubuntu 执行如下命令,使 Ubuntu 的 IP 地址与评估板处于同一网段。
1 R+ }" }* o8 }( { B Host# sudo ifconfig eth0 192.168.1.110 G7 D% C1 Z; a2 w1 j+ y% b
Host# ifconfig) }# \5 x# T9 U) U8 f8 a
图 53 在评估板执行如下命令测试与 Ubuntu 网络连接是否正常。
+ M+ X3 c& V2 I& @ Target# ping 192.168.1.110 -I eth0- }# t+ q: v9 E0 x
![]()
, f( |3 i2 x) K( O* i图 54 查看 PC 机 Windows 端 IP 地址,如下图所示。1 s) ]1 @6 y1 `# p
2 o- H6 v9 s. M: J: W
图 55 在评估板执行如下命令测试与 PC 机 Windows 端网络连接是否正常。: ]# O% u2 o6 V
Target# ping 192.168.1.30 -I eth0- j; c7 q( Y4 ~( _8 U
9 l% E# s0 H f$ |+ s. C
图 56 注意: 当评估板与 PC 机不通过路由器而使用网线直连时,必须将 PC 机防火墙关闭,并- `7 V1 U- t# W6 c
设置 PC 机 Windows 端 IP 与评估板为同一网段,如下图所示。! I: c/ c: B1 L6 W
图 57 ! X4 G3 {1 |- |$ C4 {: a) V4 I
3 USB WIFI 模块测试
) O# R4 v: {) y; T 本案例使用的 USB WIFI 模块为 Tronlong 的 TL8188,支持 STA 模式和 AP 模式。" |! j9 V! [1 S. N3 H9 C9 j: ]- Z8 B
测试文件目录 tl_usb_wifi_test 位于产品资料“4-软件资料\Demo\tl-linux-application\ module-demos\”路径下。驱动源码位于 tl_usb_wifi_test 的 src 目录下。* F% ^ {/ z3 @3 `6 o/ ]; P% ]
(1) STA 模式: 在 STA 工作模式下, USB WIFI 模块可接收来自无线路由器发出的信号, 实现通过路由器连接互联网。
; q' d2 R" z: T (2) AP 模式:在 AP 工作模式下, USB WIFI 模块会创建一个无线局域网热点,手机、 电脑等设备可通过此热点组建局域网。: A/ H0 T2 B/ {. x) O1 \
为方便测试, 产品资料中提供了经过验证的脚本程序和驱动程序,脚本程序位于 tl_
) P; J3 i: n& q* i) n" V# I0 U usb_wifi_test 的 bin 目录下,驱动程序位于 tl_usb_wifi_test 的 driver 目录下。 请将 bin 和
$ Y" a% @: m$ W* ~+ J' q driver 目录下所有文件拷贝到评估板文件系统任意同一个路径下,并按照下图连接 USB
$ |) }1 W" X3 w WIFI 模块。% b) s! Q/ O' Z4 J- S
" w' Q5 f( a, N. _) M
图 58 3.1 WIFI STA 功能测试4 x2 x5 k, z0 J% ~1 z) [
进入评估板文件系统, 在 USB WIFI 驱动 8188eu.ko 文件所在路径下执行如下命令加 载 EEE 802.11 协议内核模块和 USB WIFI 驱动。9 u0 c' x- Y/ D+ m5 [2 h
Target# modprobe cfg80211- |) @9 [7 q: M. G& D
Target# insmod 8188eu.ko! b6 f3 j5 X$ J
![]()
! c% j% T; X7 f q1 s m9 s图 59 由于系统 udev 设备管理器的原因,加载 8188eu.ko 驱动后,会自动启动wpa_supplicant 程序,需执行如下命令关闭该程序。
: T. v. T# l3 U* h0 B* {! T Target# killall -9 wpa_supplicant
' [, I) v) O1 c 6 @( k O: r$ e8 S' {9 Y' e
图 60
@$ O. E: x$ E, k; R/ Y 执行如下命令关闭其他网络, 仅保留 USB WIFI 网络。
" H- X4 o* z) V3 M6 _: [$ n5 u5 R Target#9 S5 \% G( J9 S7 T" M) j, H1 G
Target#+ J2 m' t" V Y' z( \
ifconfig eth0 down9 O/ r( p4 z" k
ifconfig' @) ?: E, b$ L1 ?8 P
![]()
7 m) X% X0 f8 f3 i4 @图 61 1 Z& f4 q' B0 j; [
在 wifi_setup.sh 文件所在路径下执行如下命令将评估板通过 USB WIFI 模块连接到路 由器。"-i"指定 WIFI 名称, "-p"指定 WIFI 密码,请根据实际情况修改。7 j, q4 U7 l7 w# E
Target# ./wifi_setup.sh -i Tronlong -p omapl138, M' d1 O2 T. H* W, A
![]()
+ _* o2 H# d% F. D% F图 62 执行如下命令查看获取的 IP 地址,并测试评估板是否成功连接互联网。 M$ d6 \4 k6 r( C
Target#
: u9 O3 e# u4 t" h6 U) R% Z ifconfig
' m$ @' n r& M% P9 S+ q3 ? pingwww.baidu.com
- v ~+ ?$ i1 }1 O- Y! M$ P, V Target#
$ A" c$ Q- E6 `# h$ C3 K2 _ # H3 b' l+ R+ x L
图 63 在 Ubuntu 执行如下命令查看 PC 机 IP 地址并等待评估板连接。
; m* ^3 k0 e5 w* M Host# ifconfig
' ?% E* i/ J Q' l; ]6 L1 f Host# iperf -s) a/ n! A1 ]) u* C( m5 k7 q
![]()
% b% `; i+ {" W" f2 C图 64 在评估板文件系统执行如下命令测试网络通信速度, 192.168.1.32 为 PC 机实际 IP 地 址。 测试完成后, Ubuntu 和评估板均会打印测试结果。+ W2 ]0 g5 i% l; C# s3 r9 u
Target# iperf -c 192.168.1.326 N$ v. C7 e$ `. U& [- O
![]()
6 O4 o) U* x' O6 f" l( l图 65 3.2 WIFI AP 功能测试
* _5 F8 D& I0 v7 { 请重启评估板并进入文件系统, 在 USB WIFI 驱动 8188eu.ko 文件所在路径下执行如7 \. J( c& p. @; h
下命令重新加载 EEE 802.11 协议内核模块和 USB WIFI 驱动。/ p1 @1 d+ h6 `7 c6 h, Y, x( s b
Target#
3 C+ y: ^& d) b5 L9 r2 [3 M% b Target#% s' t" X) u$ ] G/ [& A. x+ K' N- Q
modprobe cfg80211/ m/ F: Y: t. A4 [8 k
insmod 8188eu.ko) G x! o" P8 t" P3 J5 f
1 J0 E6 X, K1 `" @, P
图 66 由于系统 udev 设备管理器的原因,加载 8188eu.ko 驱动后,会自动启动wpa_supplicant
9 ^ }7 f9 J3 M9 S 程序,需执行如下命令关闭该程序。; \, ]2 D8 }2 l# ^! N
Target# killall -9 wpa_supplicant. o2 k5 t* Z$ q* i; `, A- o& g
6 \2 }7 L. A, T" X/ F0 l5 ^: k
图 67 在 ap_setup.sh 文件所在路径下执行如下命令将评估板设置为无线局域网热点。 Target# ./ap_setup.sh
, B* k3 k8 V2 n& B0 k+ U7 ^ ![]()
b$ x8 k) F" i) D. u& k8 L4 L图 68 默认设置的 WIFI 名称为: rtl8188eu,密码为: 88888888,可在 rtl_hostapd_2G.conf 配$ a/ j( W q- i! K2 I/ w
置文件内进行修改。
: G* a }8 {7 A: M 将具有 WIFI 功能的 PC 机(比如笔记本电脑或装有 USB WIFI 的台式电脑) 连接到此 无线局域网热点, 并断开已有的有线网络连接。连接成功后,评估板将会打印如下信息,' l' J+ c, }& Y8 Q F
显示 Ubuntu 已分配的 IP 地址。 如使用虚拟机 + Ubuntu 的开发方式, 将会获取到两个 IP 地址,其中一个为 Windows 端 IP 地址,一个为 Ubuntu 端 IP 地址。
, L; J9 a4 f# l6 F' [ : I2 Z s' \& [. I, a' k" v
图 69 再执行如下命令测试无线局域网设备之间网络连接是否正常。 若出现连接超时或失7 J/ n2 ]9 L* M5 K
败,可尝试关闭 PC 机防火墙后再次连接。
; S( Z4 a& g+ ]+ `& O Target# ping 192.168.0.216 L, h- T7 }; i3 `
6 P( K9 \" X8 i$ G. R2 F4 O
图 70 在 Ubuntu 执行如下命令等待评估板连接。
7 U" k f0 Y; N0 R. U Host# iperf -s
7 T1 p; v* e4 }7 C: ^) p ![]()
X1 B; n+ D( U图 71 在评估板文件系统执行如下命令测试网络通信速度, 192.168.0.21 为 PC 机 Ubuntu 端 获取的 IP 地址。 测试完成后, Ubuntu 和评估板均会打印测试结果。( E* R, k8 g' x. s( I& w
Target# iperf -c 192.168.0.216 d, K; t; F. J- g: ^# u# U
' z9 ~5 q1 E- |0 o) z9 i
图 72 当有多个设备连接到评估板无线局域网热点时, 可能会出现如下错误。这是由于评估
9 L5 p4 V2 d% f' W" F' \+ k- n 板使用 hostapd 程序来开启无线局域网热点,在多个设备同时连接该热点时,出现 random
; P9 _6 Q( v; C4 O 熵的熵池资源不够,无法生成随机数,导致设备无法连接热点。
/ j" V) _3 B. X9 a3 V2 K ![]()
& [; A/ r2 T! T# c! U( z: m图 73 可执行如下命令使用 urandom 代替 random 产生随机数, 并再次尝试连接。 A* b& p+ _- t7 [
Target#
4 x$ I+ l, y) @ Target#
4 P# b1 [- f' C, o+ \% Y mv /dev/random /dev/random_ori
6 ]6 Z. q% m, G" O1 H U# v3 Q ln -s /dev/urandom /dev/random }% n. k7 }- P# A8 u+ a0 ~! v) w
图 74 3.3 USB WIFI 驱动编译
$ z, {( ] x9 c7 Z% e' ^- Z 如使用重新编译的内核镜像启动评估板,则首次需按照如下步骤重新编译 USB WIFI 驱动。在编译 USB WIFI 驱动前,需确保内核镜像和内核模块已成功编译。 内核镜像、内 核模块编译方法请参考 Linux 系统使用手册的内核编译章节。
) K; R4 c; j7 u9 Y9 l$ M7 j 将案例src 目录下的 USB WIFI 驱动源码拷贝到 Ubuntu 任意路径并解压。
: _6 n# T$ D, ?$ g* f2 _ Host# tar -xvf rtl8188EUS_linux_v5.2.2.3_24783.20171030.tar.gz
9 f1 x+ R4 j& p8 T6 c' c ![]()
' b' h" {/ s3 k/ v图 75 进入驱动源码目录,打开 Makefile 文件。( P7 u) {/ O+ y! q. m/ E1 N9 v
) ?8 R+ D: M5 G( g/ {4 @
图 76 Makefile 文件内容请按如下说明进行修改。
4 {% _/ z5 [5 P2 V CONFIG_PLATFORM_XILINX_ZYNQ = y //指定为目标平台, L8 o( O/ F8 p& I9 A4 c
![]()
1 y% t# X- |1 F6 C图 77 CROSS_COMPILE := ARM-linux-gnueabihf- //指定交叉编译链. f* e |) s7 E) o
//指定内核版本号
$ L# F7 W8 u, x! c/ `( C8 L KVER := 4.9.0& |) d. ~1 E! \1 P( m
KSRC :=/home/tronlong/ZYNQ/Kernel/Linux-4.9.0 //指定内核源码路径
- [# ~8 z w2 U" p9 Q& w: h7 K. D1 z ![]()
8 O) R. b: @ P$ y# ~8 C2 [$ Q, K图 78 在驱动源码所在路径执行如下命令加载 PetaLinux 环境变量并编译 USB WIFI 驱动,编 译完成后即可在当前目录生成 USB WIFI 驱动 8188eu.ko 文件。3 O) P+ \* x; D1 ?1 U9 ]) i& |
Host# source /home/tronlong/PetaLinux/settings.sh4 v+ J9 V2 H& ~: Q2 ]8 d
Host# make, ^" m3 M/ n1 H2 f8 [2 C u8 l$ m
) j# X2 H- O) C; X0 Y, O6 j
图 79 2 r- ]# u v- J4 F3 d" p5 f
图 80 * A4 {9 f& |/ T& q
|