TA的每日心情 | 奋斗 2020-3-25 15:17 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
前 言0 R+ M Q! u& y; i! D3 P( B/ a" O
本指导文档适用开发环境:8 l: @: g6 z9 l% T1 z
Windows开发环境:Windows 7 64bit、Windows 10 64bit
. n( a; c9 H8 {0 mLinux开发环境:Ubuntu 14.04.3 64bit
9 g& N; Q Q6 e9 D5 Q: e虚拟机:VMware14.1.1
$ s! ^9 ~( G8 `U-Boot:U-Boot-2017.01
: P" N( M% t) `" d1 R" MKernel:Linux-4.9.65、Linux-RT-4.9.651 M, \2 ?8 [6 W7 }. h
Linux Processor SDK:ti-processor-sdk-linux-rt-am437x-evm-04.03.00.05
5 e* [6 n3 h9 E. P2 v+ [进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机、Linux Processor SDK等相关软件。
" r2 [7 x: L. r' a8 G: o本文档主要提供评估板的硬件资源测试方法。无特殊说明情况下,默认使用UART0作为调试串口,使用Linux系统启动卡启动系统,通过路由器与PC机进行网络连接。, _; e0 G0 {- F& X, p8 ~% U) c8 J
评估板快速测试 系统启动测试接入电源,并使用Micro USB线连接PC机和评估板的USB TO UART0调试串口。
5 z2 K% W- d* f5 _4 G " j0 P& s- t) Y% k3 Q6 i5 R
图 1
- H7 W" Q& r0 o# { y% p
8 C& R% k, s7 _( K0 s: }/ {" Y打开设备管理器,确认评估板UART0调试串口对应的COM端口号。
) y u" [5 Q& S$ k9 _8 \) i1 [1 o![]()
, _" N6 L4 s" U+ I图 2: ~8 F: }4 ^% \ K4 I- I
6 h, j' `8 |: Q N, Y/ p![]()
2 N1 A ~- i$ V' [图 34 u3 _ X6 ]/ T: j
$ ]+ g! Z8 ]+ Z0 G+ l$ Z1 j% D1 ]3 ?打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无检验位。建立串口连接,如下图所示。
' Q2 i/ {" a+ T P 9 C0 `/ @# t; z' C3 q) S, n: u
图 4
' _( G5 r0 o3 v1 ^( e M" H# g2 k$ f; t6 k) S( d0 |/ ^
将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将拨码开关拨为00110(1~5),此档位为SD卡启动模式。将评估板上电启动,串口终端会打印以下类似启动信息。
6 z, Y: u+ w- m" q* o0 \ & h& h5 E& \' B% q- f
图 5% [- U: j' }7 v6 F, w. _# E
- o8 i9 ^, C, J {9 }$ U
" l, [/ t S6 ^, E F# R
# [5 _/ ~7 [5 n. i4 l% @- K
图 6
+ }& G" A, P: b / ~: m Y3 p: t# `, ?
图 7
9 D# l& G0 T. j( M" r; D+ i* P. ^. z7 H7 \9 F
在系统启动过程中的LED变化说明如下:
) Y* ~ j1 r0 W- I评估板上电后,电源指示灯D3点亮;随后U-Boot第一阶段启动,D1点亮;紧接着U-Boot第二阶段启动,D2点亮;直到内核启动运行时,D2熄灭,D1进行心跳闪烁;NAND FLASH进行读写时,D2闪烁。
7 d9 i# R+ y6 X" {" Q. i8 {! z; V* K系统启动后会自动登陆root用户,说明使用Linux系统启动卡启动评估板成功。2 Q# E% A Z; @0 \# V
4 l7 R- _, K0 m* `8 O
图 8
% S5 ^/ s" `- {, b$ N" K/ p5 Z, V& F: x+ W4 ~! l! {
文件传送测试PC机和评估板之间传送文件的常见方式如下:: s( k/ O/ G/ M0 }+ d
- 通过Linux系统启动卡、U盘等存储介质方式拷贝。
- 通过NFS、TFTP、OpenSSH等网络方式拷贝。
- O6 R. y/ `1 d# j8 ]7 p
- 通过Linux系统启动卡' r3 ^* l3 E2 q% [% r
将配套的系统启动卡插到PC机,然后把需要拷贝到评估板的文件复制到系统启动卡的BOOT分区,如下图所示。- w& V z I5 K( P4 `
3 g: @/ ?" F1 p( L
图 9
. M4 ~9 o7 V6 E# b. ?
% a& R5 }* B8 r" q0 t/ N$ v9 e将系统启动卡插到评估板,启动系统并执行如下命令查看分区信息。系统启动卡的BOOT分区挂载在评估板文件系统”/run/media/mmcblk0p1”目录下。
# ^$ w! ?2 w5 r2 M# CTarget# df
) t) [. u0 j" \1 z$ n8 _" d. [3 _7 }Target# ls /run/media/mmcblk0p1+ [ H0 u+ P# ?, S. l" I+ G/ G
C+ d' @8 P6 q# ^- X4 h5 j
图 10
0 N0 C% R) @. |, x( L: j
0 B: s$ `* m$ \- 通过OpenSSH6 G& F2 M4 y3 Z% G4 G" q" z" Y% S, a" I
OpenSSH是SSH(Secure SHell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。
9 x0 W2 F1 F( _6 q在Ubuntu中执行如下命令,查询是否已安装OpenSSH。
2 ~' w' E8 m/ q1 U3 A# nHost#ssh -v
9 q; w C0 d1 H {8 i$ ~![]()
) f/ k- n0 d9 b' h E! w W2 u图 11 ^! w* V: B k" c* _. |6 @
" R9 m# H3 s! }; t" w$ h可看到系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。
0 o0 D6 Q& A9 C u, u# i. ~$ l将评估板RGMII ETH1网口通过网线连接到路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0为网卡名字,请根据实际情况修改。
& f9 x: U" m; s! U5 ]& ]- mTarget# udhcpc -i eth0
+ }3 t5 H& P2 k 9 f$ u$ C+ [$ i- Q2 ?$ e
图 12' a7 V* P5 t/ O
1 t/ [. i' k$ Z8 l1 W4 f执行如下命令可查询IP地址。本次查询到的IP地址是192.168.0.106。
) K2 i6 z( N! B* {" W! v& g: e' iTarget# ifconfig1 `5 {- k8 T% j _
![]()
9 w4 Y; |% P8 Z. m5 F图 130 `4 m" i5 y- b$ D( o
. W" c, C/ O7 t2 J `. l( q$ L
- 使用OpenSSH从PC机传送文件到评估板4 q% `) r7 J; A
执行如下命令在Ubuntu中新建文件test1,并使用OpenSSH命令将test1文件拷贝到评估板文件系统根目录。
; V0 u6 L" K; {7 r+ iHost#touch test1 //新建文件! W! M4 D* U7 [: b4 p, }
Host#scp test1 root@192.168.0.106:/
- c! B( J/ k* Y0 G9 o![]()
8 g( l7 W8 R3 B图 148 `% V/ h+ A. x
' x3 U" A3 X. I/ k4 C7 z如出现提示”Are you sure you want to continue connecting (yes/no)?”,请输入:yes。
8 p9 t3 Z- d% {6 e9 Q( q在评估板上执行如下命令可看到从PC机拷贝过来的文件,如下图所示。
6 M" Z* v3 X8 ~Target# ls /
/ x: W0 W: n% d1 ]![]()
1 M6 D: y& ]8 j1 Q# F图 15
0 U2 w0 w3 E% z! g- m. E) b, e% ~" Z A, B1 q
- 使用OpenSSH从评估板传送文件到PC机. q, G) ~( T- O, r& g* A- N
执行如下命令在评估板文件系统根目录新建一个测试文件test2。
( i+ ^4 [$ S. P4 x& s' a; _Target#cd /- ^5 j' p* Y. C* t9 Y1 t
Target#touch test2 //新建文件- f! V) E9 g% l
8 l8 Q8 H4 x! q+ S- p) g
图 16& m1 |" k2 e* r4 p8 k2 t
1 F/ i8 P2 i. |2 O( a; h
在Ubuntu上执行如下OpenSSH命令将评估板测试文件test2拷贝到PC机”/home/tronlong/test/”目录下。如果传输的是文件夹,请在scp后面添加参数”-r”。4 p- V1 e/ n2 \. q/ T9 X! {
Host#sudo scp root@192.168.0.106:/test2 /home/tronlong/test/) @; E$ Y3 \. _% H* Q0 G
Host#ls /home/tronlong/test/
9 ]9 \5 E; k0 O1 N$ l9 L+ K![]()
. S: U5 A" `! ^9 W# \) A图 17, P& F4 N0 {2 _, Q% x0 ~- H( g
1 I& g5 q: {7 M& V) F r6 [2 J+ z$ D( ?- 使用OpenSSH登录到评估板文件系统; A* C+ t8 w! C9 o) A! s
在Ubuntu执行如下命令可通过OpenSSH登录评估板文件系统。
0 R7 b7 Z! K5 c. y; z: ~" W4 IHost#sudo ssh root@192.168.0.106
2 v/ c: x# `$ w; E* N 7 a, C5 y0 j0 [; U$ {, `% J
图 18
. l; `1 [3 Y7 l
) _) M% o/ m, d! @如需退出登陆,请执行exit或者logout命令。4 ]6 B3 {$ B% x% Y
% K- A/ M( Y5 `4 H1 {" _$ }4 L* ?LED测试
' C' J6 T! Z/ c# G: f m评估底板LED与GPIO对应关系如下表所示。. H; o( p9 [+ }* I
' c3 O4 U9 p* n! s/ L; A
表 1! j6 @1 b: K' X+ J
D8& k$ r( e/ L* O# t3 e8 }) A
| D9
( w* V) W/ s) l4 o4 u9 {! c8 M0 } | D10$ w( y" [- V. v9 L( c
| D117 G" N6 H5 w/ N% n0 c
| GPIO5[10]
8 G/ |% @6 b0 o3 ?8 S( T | GPIO5[11]
/ o7 g4 I5 }& S6 q, v# g' |+ o | GPIO5[12]1 H$ k* p/ I( `4 V: U
| GPIO5[13]* i, [3 @/ D7 C) y- }
| 4 b' L X! @* ~, S4 b
- 逐盏点亮LED" Q/ g2 Z/ C% F5 G: E) v
进入评估板文件系统,执行如下命令逐盏点亮、熄灭LED。% ]8 t6 ^, W+ v( k Q( M7 ~$ m
Target#echo 0 > /sys/class/leds/user-led0/brightness //控制D8灭
4 ]/ V# W) Y7 Y9 }5 ^$ nTarget#echo 1 > /sys/class/leds/user-led0/brightness //控制D8亮
& a1 c8 R* o' A$ l. ATarget#echo 0 > /sys/class/leds/user-led1/brightness //控制D9灭
8 a v; M+ l4 V; CTarget#echo 1 > /sys/class/leds/user-led1/brightness //控制D9亮7 {* D% r: q+ q6 e' ~/ y2 k+ F* a5 s
Target#echo 0 > /sys/class/leds/user-led2/brightness //控制D10灭% G# f3 e7 Z, k% E0 {9 {3 j+ Q
Target#echo 1 > /sys/class/leds/user-led2/brightness //控制D10亮
9 ~1 X. d8 K2 MTarget#echo 0 > /sys/class/leds/user-led3/brightness //控制D11灭7 X% I0 b6 y7 d2 r* d" X+ `% V) N/ }
Target#echo 1 > /sys/class/leds/user-led3/brightness //控制D11亮! E% C, R7 q8 x% q" j
![]()
% Q g& b. p. ^图 192 E1 n+ {; X# R. ]4 O {9 A3 e' Q
9 ~( M7 s# R8 S7 y
- LED流水灯/ T! ]; h* Z( V; j4 L
将产品资料“4-软件资料\Demo\platform-test-demos\led”目录下的led_loop.sh脚本程序拷贝到评估板文件系统。进入脚本程序所在路径,执行如下命令运行脚本程序,循环点亮LED。7 L3 ?( E. U+ | b6 G( M* ~$ ~& {
Target#./led_loop.sh
$ K# X+ @0 s' j6 f; c![]()
! V; u. M% C* F' n# c图 20
6 r2 `, t" j2 m3 O* e7 Q0 K4 t" W) N7 n" \
可按”Ctrl+C”终止运行脚本程序。! }* ~% ^. Z4 x0 p8 H$ M' I8 j9 g* h
在执行程序时,若提示”-ash: ./led_loop.sh: Permission denied”没有权限,可执行命令”chmod 777 led_loop.sh”获得执行权限。
% E; ~ {! B$ s$ f# L- M
5 t, d5 C" ~" b' n* r3 h7 f按键测试 O& u5 O4 ?7 U- E6 S6 o& J
评估板用户按键与GPIO对应关系如下表。
\! v, \8 ^6 X# }; v# J7 t6 {/ L5 e9 b% j$ \+ s* R6 s+ i) y
表 2' K) t# v5 P( g- h: r% D
KEY0
2 D$ @: I, t" U! ^! f) c" ~4 N | KEY1
Y2 G! r. i% F" k0 M | GPIO3[7]
5 g# `/ n! x1 ~/ C8 q. \: a% R | GPIO3[8]
" c( M- K- \& E( L% @7 y |
& ]! _' W6 [* o7 ~) A+ o" d进入评估板系统,执行以下命令查看按键事件号。
, |! U* c$ d( BTarget#cat /proc/bus/input/devices
+ Y# Z* i# _* M$ D5 b # f+ |7 d. j# l& I) Q
图 21% {: T5 M! o6 |, P4 n; x
6 O- g2 H7 l; e8 {! L
从上图中可以看到按键事件号为event0,执行如下命令进行按键测试。0 n' u* p% [8 ^5 S7 h/ P8 y. E
Target#od -x /dev/input/event0
6 y6 Y- f; G) T( T先后按下评估板的2个用户按键,可看到如下打印信息。按”Ctrl+C”可终止测试命令。" O, h6 f; Y8 e2 s: z
![]()
# R& g" x- ^" ~; g( x# r图 22
, G( L7 j4 D0 C. d1 m, Y' }
" W) G8 U4 z9 ]! l' j
. g' ?: R$ w1 y! h& j7 O# E4 z% y时钟设置测试Linux系统中分别有系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。
+ _# J( A5 |! P! S, X! a/ o5 ~/ h如需使用RTC时钟,请先安装RTC电池。以下为时钟相关的常用命令。
3 d! f# y% O* w' p- 查看系统时钟
0 L( v' ^' O- u4 X. L Target#date
. r) \# L$ w5 g; V9 G8 h2 x, V![]()
+ n3 z, ^% v' n! w# |0 y图 23
8 y D) ~# D8 Y! ~
u9 H2 E- u# n' m/ n5 ]- 查看RTC时钟
" F4 _. ^; X5 }. t5 ]7 o% ? Target# hwclock -u
$ ^% x8 [: z6 ~4 _# f' S![]()
* [" X: ^9 k/ i1 h+ r图 24" y- t# l' y: K2 t
% ]: B9 k6 G* x5 oTarget# date -s “2020-08-07 15:27:00”//设置时间:2020年8月7日15点27分00秒4 R3 b6 H# N k& u! Y/ Q
Target# date# K: i" [9 r m( k7 o: S6 T; p
6 N- `" s% ^( S! n. a
图 25
; _- V0 X" Y- c8 E J9 [! U0 h G/ o! |, j% a
- 同步系统时钟到RTC时钟
6 x, f. K1 @2 V Target#hwclock --systohc -u- w9 [0 l5 }, M( t$ x; Y$ ?# D6 W
Target# hwclock -u+ n `% t8 |7 \" a( D) E
![]()
9 J( G' ^* F8 A7 g图 265 n- a, p/ Y1 o J# t
/ }4 B" q" t$ L/ f- 同步RTC时钟到系统时钟6 m; q$ V' c$ F8 t
Target#hwclock --hctosys -u
9 q$ e( o" A3 v![]()
. J1 b! p1 h/ j( C2 `, c9 y图 27
/ o0 \- h5 r$ e$ c2 V" W9 F4 n. U. ~3 z4 I( r$ O
2 z( p# U* l$ E. E5 G( E. g2 G
CAN总线测试
5 _$ S2 L4 w$ V7 f+ R( ?评估板有两个CAN接口,测试方法为:将两个CAN接口连接,测试两个CAN接口互相收发数据的正确性。
: x: R3 n8 T, f. [# Z1 ` ) J0 K) r. P; {. x! ]) W0 E
图 28; i( ~. H6 |; z3 X
1 p7 @: O' X5 Z; I& Y' ? {请按如下方法连接两个CAN接口。
0 J+ N0 v4 e8 ^7 u- CAN0接口H端子,连接CAN1接口H端子。
- CAN0接口L端子,连接CAN1接口L端子。
- CAN0接口GND端子,连接CAN1接口GND端子。- |/ n- r1 k- B1 y* g* t3 M
进入评估板文件系统,并执行如下命令查看CAN设备。
+ H: ]0 S$ H. Y2 R! rTarget#cat /proc/net/dev
$ h+ Q2 B: p; p# @4 k![]()
7 A+ Q, l3 r' M8 d图 29
# _# e& J0 W1 P2 y0 ~; |& G5 ]
. t; h: V1 I! W, X6 h1 A执行如下命令可查看CAN配置命令的使用方法。
" U; P( D9 S7 W& _/ O2 }Target#canconfig --help
2 o* z; L( \ m& e+ L* b% \/ k/ V* _![]()
$ q' ~' T1 k# w7 d# T图 30' \; H3 r1 E7 g! \9 v8 M8 |) a. X
: e/ d% I/ W! f# w0 G将产品资料“4-软件资料\Demo\platform-test-demos\can_test”文件夹下的两个脚本程序canconfig-can0-1.sh和can0-to-can1-test.sh拷贝到评估板文件系统任意路径下。在脚本程序所在路径执行如下命令运行脚本程序,测试CAN接口通信功能。; l! D& S' v9 i3 _9 o$ a+ B
Target#./canconfig-can0-1.sh4 p/ \. \6 [6 A- ]+ r6 \/ d* O
8 ^5 ]! M9 o7 k) g+ m! w
图 31% K1 N$ d* R8 G. Y8 H d
3 p' r' u$ P8 cTarget#./can0-to-can1-test.sh4 q: T) U+ b+ W/ E# R# Z% i. H
![]()
+ e! n4 i0 K- Y6 [- N G& y图 32/ C: U4 `; o& `6 k
7 j6 X6 c4 k& E! K, _脚本程序的任务是从CAN0发送20帧预设数据到CAN1,同时从CAN1发送20帧预设数据到CAN0,并保存此两组数据到can0to1data.txt和can1to0data.txt文件。) \9 B2 F7 X7 ^
![]()
`+ U C9 q r& a9 D( q7 g3 F2 B; T图 33) |# I6 E" t9 `% x
' I; v& k0 u% b* R0 ^6 z打开当前目录下生成的can0to1data.txt和can1to0data.txt文件,查看文件内容数是否和下图一致。如一致则表示CAN通信功能正常。
! o2 v; y! U. k+ XTarget#cat can0to1data.txt
; u, a, O0 L8 ~% R0 D- YTarget#cat can1to0data.txt" O0 m" N2 d" O, T% z( a
# U$ F! b w, a5 |7 a
图 34" o5 ~. o- A, B) d3 [3 V* m' O5 Y
' q x$ Q- U! }+ A' k
: Z4 f0 g( M) f R w- J q9 x" cFRAM读写测试本小节对评估板FRAM进行读写测试。; ] O1 {0 y/ ?. J X' {% u, z
执行如下命令,将字符串数据写到FRAM。! ]9 I; H+ T/ Z ?/ ~, m& X) J. b
Target#echo "www.tronlong.com" > /sys/devices/platform/44000000.ocp/4819c000.i2c/i2c-2/2-0050/eeprom9 I0 w! `) ?1 r1 C8 I
执行如下命令,读取写入到FRAM的数据。
. b* N6 H y0 G5 F, ITarget#head -c 16 /sys/class/i2c-adapter/i2c-2/2-0050/eeprom* l) ]) N8 |5 \* [- i, @
![]()
! r. G$ U, i" B* ~8 V, }图 350 f$ o# `1 l2 }
. d- ~) U( C* B( m DDR读写测试Linux系统启动时,在U-Boot阶段完成DDR的初始化,并打印DDR实际容量,如下图所示。5 J/ s9 I' c* F
m+ F2 i7 ]7 h: g: s8 l: L( m9 }% ]) H
图 36
: U9 ]% H7 J- W& s5 N ` v3 RDDR读写速度受实际情况影响,测试速率以具体情况为准,以下测试数据仅供参考。+ f+ I/ H$ @7 b
- DDR读速度测试
5 g* ]: [) n' U. D- M" y+ m: M 进入评估板系统,执行如下命令对DDR读速度测试。$ I3 o" e, Y- q- }, y& `
Target#bw_mem 100M rd8 r5 u: E6 b8 f. M8 U) A$ G
![]()
/ ^; _" K8 A0 }$ K, Z% [图 37
2 U& _0 h2 I5 C9 g" A! b: L0 q测试从DDR中读取100MByte数据,可看到本次测试的读速度约为:375.03MB/s。$ J: P3 E: B* X; }3 ?4 O' I! V
- DDR写速度测试4 q' I; X6 `4 H9 j+ T
进入评估板系统,执行如下命令对DDR写速度测试。) C$ w" R M6 L ^
Target#bw_mem 100M wr
! @+ W" V' t- }7 e. L7 V # S$ N9 ~5 B2 }+ k. x% q# e4 M, I
图 38
. H: _" z2 X; ]* G( B) t
# ^" ?: h! t: @2 W测试写入100MByte数据到DDR中,可看到本次测试的写速度约为:275.43MB/s。
7 t3 t5 v8 W8 W* \- DDR拷贝速度测试4 J7 w" y7 Q" a) [$ r, }
进入评估板系统,执行如下命令对DDR拷贝速度测试。4 G4 g2 {0 ]0 e; U4 a, S6 N
Target#bw_mem 100M cp
, z9 `/ f& w, T: ]' N 9 d+ l8 t1 g3 N$ Y
图 39
1 ?1 g/ D" k6 h! X3 Y测试拷贝100MByte数据到DDR中,可看到本次测试的拷贝速度约为:195.63MB/s。$ D& P2 h5 M8 Y) A, b* i$ v6 V' ?
, p) g/ G- d" A- `0 c% W( @ |
|