EDA365电子论坛网

标题: 评估板快速测试-基于TI Sitara Cortex-A9 [打印本页]

作者: Tronlong小分队    时间: 2020-9-21 11:32
标题: 评估板快速测试-基于TI Sitara Cortex-A9
前  言
9 b. A9 K! Z' a" D/ \本指导文档适用开发环境:
- X, O" y( z% B4 ?4 jWindows开发环境:Windows 7 64bit、Windows 10 64bit1 d" N% T3 D4 ~8 I" s: B' v. V0 Q
Linux开发环境:Ubuntu 14.04.3 64bit
6 |. P- G7 K: P虚拟机:VMware14.1.17 n- s  w& f$ c) z
U-Boot:U-Boot-2017.01* H) S* Q& X( h4 a- f7 [- v
Kernel:Linux-4.9.65、Linux-RT-4.9.652 w9 R# W6 w8 K7 \. o- c6 {+ z9 a
Linux Processor SDK:ti-processor-sdk-linux-rt-am437x-evm-04.03.00.05
- ]3 l; I7 M% v# L进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机、Linux Processor SDK等相关软件。
. z; q- ?0 R9 [- k本文档主要提供评估板的硬件资源测试方法。无特殊说明情况下,默认使用UART0作为调试串口,使用Linux系统启动卡启动系统,通过路由器与PC机进行网络连接。
1 o& H8 \; q; O" l  E  Q& K9 ~$ C 评估板快速测试 系统启动测试接入电源,并使用Micro USB线连接PC机和评估板的USB TO UART0调试串口。, W$ d4 j  J( _

4 B4 \8 J9 W! E' X. h2 O图 1
7 r, b6 U7 Q. }) ^9 C3 u5 L* Z7 W
打开设备管理器,确认评估板UART0调试串口对应的COM端口号。
! p7 {; H/ v* l# U
' s% p$ U( @3 G& R. n图 29 K1 a1 ^9 Z" v3 m" h) z0 f

7 y! E  x1 o7 j" s/ I
# |7 g* g2 [/ n7 J" Y2 ~图 3' S# E( |' p1 x+ i
* w  E3 @" ]8 u( Z! N! g6 _& o
打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无检验位。建立串口连接,如下图所示。& A" g% U( ^; n2 ^

8 R" j$ ]& ]7 i) X: H. v$ ^图 4
, w# L1 E0 [8 o! @& H+ y7 t. e% Z4 Q$ `, m' X9 d4 x0 I. V7 p; N
将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将拨码开关拨为00110(1~5),此档位为SD卡启动模式。将评估板上电启动,串口终端会打印以下类似启动信息。6 A- e# Z9 W" [* t: N
. o' P" K/ r* L9 P
图 5$ e' H+ Y: `, k: D$ Z  g: M2 Q" q  p+ g
) r5 a, l, r) D, r  j( K

; N# L# @. H: w4 T
3 ~% W6 E' {2 A8 R! z5 w$ n图 6
3 Y$ k6 h6 q! Y& g
4 Y+ Q0 x; S+ Y, a% s- {1 s* K图 7) L. T& r6 b6 t; y& @. }. h

1 H) X( h  Z6 l' f在系统启动过程中的LED变化说明如下:
- h( x( z! K( T8 |* w评估板上电后,电源指示灯D3点亮;随后U-Boot第一阶段启动,D1点亮;紧接着U-Boot第二阶段启动,D2点亮;直到内核启动运行时,D2熄灭,D1进行心跳闪烁;NAND FLASH进行读写时,D2闪烁。5 v3 k9 u& h/ q4 ^1 d6 u
系统启动后会自动登陆root用户,说明使用Linux系统启动卡启动评估板成功。
3 e0 d2 P+ X! `* _! [. R
# P6 P2 M! S1 D图 8* h+ S/ H5 j& j8 k5 v1 K0 ]$ F
) B* E2 F% Q6 @  J6 `+ u- M. c! p
文件传送测试PC机和评估板之间传送文件的常见方式如下:
" g# h" H8 Z+ a& s( M1 H' |将配套的系统启动卡插到PC机,然后把需要拷贝到评估板的文件复制到系统启动卡的BOOT分区,如下图所示。
, Q- j0 f% h2 O, n" c
# C! V: |; V$ l图 9
$ Y7 m# Y! p* J# H7 J" n2 c7 s, E/ H7 _' ~6 n% u
将系统启动卡插到评估板,启动系统并执行如下命令查看分区信息。系统启动卡的BOOT分区挂载在评估板文件系统”/run/media/mmcblk0p1”目录下。
4 v3 p$ e+ @" y2 ?, K# W1 [: W0 eTarget# df
) ~/ d( w! y! d: Y9 S( N& _Target# ls /run/media/mmcblk0p1
% U" ~; f1 V  k$ p
/ B( z, I0 n* n! e9 `9 g图 10; ?8 }) f% c! V  s9 t/ P2 K5 P: \+ l' t

# a! a7 C. W( p/ m: KOpenSSH是SSH(Secure SHell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。
' m/ k5 z, I. w# S在Ubuntu中执行如下命令,查询是否已安装OpenSSH。
4 R% ?; `7 Z9 y! H7 sHost#ssh -v
  [, c+ I2 D8 j. ?( z
$ ~- i0 p* ~. ^) ]+ F0 m- U图 11) |: W+ Y, U+ A3 o5 _

* x: O; \' U& n3 ]可看到系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。# U; ^  F/ @, G7 s' D
将评估板RGMII ETH1网口通过网线连接到路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0为网卡名字,请根据实际情况修改。
: X# }+ {% [0 F+ _9 G$ Z1 v9 yTarget# udhcpc -i eth00 @& B% ?0 `5 i: e4 z# r& i
, a, \* w6 m! @" U: Y
图 12
( M5 ]5 C, S1 ^. Z0 ^/ l8 _( b" e* B1 X3 L5 a* |& m; I
执行如下命令可查询IP地址。本次查询到的IP地址是192.168.0.106。  f; g' V- w/ L% {- X2 v6 t" {0 Q
Target# ifconfig4 N6 N& m- _+ T# i

( C. ?: _  O$ s7 g- N9 C图 13" |2 M* h6 c$ r+ O# \2 @

" V) r1 B8 |! ?7 f5 G! Z6 p! c' `+ F; P执行如下命令在Ubuntu中新建文件test1,并使用OpenSSH命令将test1文件拷贝到评估板文件系统根目录。
0 x( M6 C* O  f% gHost#touch test1 //新建文件  f1 [4 ?6 f" x( X% o/ j
Host#scp test1 root@192.168.0.106:/5 r+ h) h; L7 @; i

: Y1 W: V% c( L  Z' `图 14
4 D2 s6 T& h) z- p/ x1 ~) {3 h/ ~& C: `& p
如出现提示”Are you sure you want to continue connecting (yes/no)?”,请输入:yes。
  I8 z0 K! ~1 q2 S5 N( F. h8 p  P# H在评估板上执行如下命令可看到从PC机拷贝过来的文件,如下图所示。
. K3 ]& ^) d+ Z5 {/ UTarget# ls /
! j6 P% ^' G- G* P  W- C$ j  t: v
图 15
, ~% F: F$ g% g! v9 B) }. i# f# g  x( E8 U
执行如下命令在评估板文件系统根目录新建一个测试文件test2。1 M. I3 R' A. k9 M1 o
Target#cd /
8 M& `# B6 h1 g; ?9 a  GTarget#touch test2 //新建文件
1 }. V) a0 ?. e1 \. L$ \! l+ [
* d' g' d6 W3 ]1 [' {7 \图 16
0 H. D6 o3 v8 T4 x( _- a, e
: W2 u7 Y+ S. W* |* E5 q在Ubuntu上执行如下OpenSSH命令将评估板测试文件test2拷贝到PC机”/home/tronlong/test/”目录下。如果传输的是文件夹,请在scp后面添加参数”-r”。
- |( u$ J# d$ o% B: `Host#sudo scp root@192.168.0.106:/test2 /home/tronlong/test/- i: u! u% ]) f" ~3 h& K1 W
Host#ls /home/tronlong/test/# a" m5 Z- p6 Y. G
" J# m' ]2 I2 p( j
图 17  C9 A! X7 P; Z- a! C

, k8 M( K1 b$ v3 Q% f在Ubuntu执行如下命令可通过OpenSSH登录评估板文件系统。6 p1 T6 [- p8 N/ k; }5 g$ Y
Host#sudo ssh root@192.168.0.106, i% b% S/ N( f, `4 R4 S

8 P! @8 T- z3 P: P$ v2 A图 18
3 O7 D! n: m8 V& b) @4 ~% y) Q' |
如需退出登陆,请执行exit或者logout命令。
/ s/ L# C8 w) p
/ }+ n# V0 z. l* c2 h0 fLED测试& F  t5 K, n- K3 G% ~% V, \7 a
评估底板LED与GPIO对应关系如下表所示。
: r4 A3 \: k5 N4 w# W1 a$ t$ {: O, C* S; w7 M0 @  r- h+ D+ F: j' n/ H
表 1
  K% m% H. R$ {# O/ U
D8' I( |" ]( K4 \. O/ ^
D9
) w% |8 m& Y4 V( I& P* ^
D10
3 \6 O# V2 {- V6 C2 s$ i6 Z0 q
D11+ p$ ^& Z# H( E4 e$ o4 O6 M
GPIO5[10]
6 @8 F- C. i! @& L
GPIO5[11]- z7 H! f! H# A( @4 H$ G
GPIO5[12]8 S3 I  G  K" L/ J/ ^8 L* {3 o
GPIO5[13]) H- K/ \/ I7 d. D5 `8 B
+ t! J1 c* ], x/ ]
进入评估板文件系统,执行如下命令逐盏点亮、熄灭LED。
2 [- ^: U0 I, z# |& y$ S+ nTarget#echo 0 > /sys/class/leds/user-led0/brightness //控制D8灭! @- b' f6 o; q5 F4 n5 m$ B7 V3 a
Target#echo 1 > /sys/class/leds/user-led0/brightness //控制D8亮! J* v$ _: B1 n# C% j) N" O
Target#echo 0 > /sys/class/leds/user-led1/brightness //控制D9灭- v9 n, M2 V; h0 z
Target#echo 1 > /sys/class/leds/user-led1/brightness //控制D9亮
. [% z; [  G; F; I$ |8 E; n& XTarget#echo 0 > /sys/class/leds/user-led2/brightness //控制D10灭
1 j& f( e1 `9 U0 DTarget#echo 1 > /sys/class/leds/user-led2/brightness //控制D10亮8 X* {# Q8 k( c* o
Target#echo 0 > /sys/class/leds/user-led3/brightness //控制D11灭8 T% u5 `! U* K: X% H
Target#echo 1 > /sys/class/leds/user-led3/brightness //控制D11亮/ O9 }9 z7 n% R* m$ l$ T

) m* R7 z$ M" F* w8 w6 \$ L" X图 19
1 J( A. }; ?9 [) p/ |1 T
/ H! R* o' h) `: J# b将产品资料“4-软件资料\Demo\platform-test-demos\led”目录下的led_loop.sh脚本程序拷贝到评估板文件系统。进入脚本程序所在路径,执行如下命令运行脚本程序,循环点亮LED。
! \* L6 {# Y5 j$ d2 I( DTarget#./led_loop.sh7 q! B& A3 T  e) a$ [$ }

2 O/ K" M0 w3 a图 20
5 e- P$ z  [7 m, c
2 y7 w1 h" M6 F; D) \可按”Ctrl+C”终止运行脚本程序。4 D3 }9 x! K$ t' h: ?( N
在执行程序时,若提示”-ash: ./led_loop.sh: Permission denied”没有权限,可执行命令”chmod 777 led_loop.sh”获得执行权限。
, [# k- {: \3 f% P* t, |6 w2 ]2 r5 P# j* j
按键测试
: g7 n3 u3 @7 r/ t, A4 S9 Y( P评估板用户按键与GPIO对应关系如下表。/ [' `; O- V6 P: d8 w
3 B1 O& `0 H) O- K# P
表 2
: n- p/ V' s# k- _( _: N0 h* ~
KEY0/ i7 ?/ S9 r, ]+ j$ S) o* _% D
KEY1
# E# S& g! \0 W8 B' `; k8 r' H# D
GPIO3[7]: u6 i0 X4 c1 e# _7 W  s% _
GPIO3[8]; R) e& m+ T9 C+ ?8 S3 ?5 d
, K  l' p1 P4 V4 H6 {6 v. U
进入评估板系统,执行以下命令查看按键事件号。6 q) i; E% d: s6 m+ E. Q
Target#cat /proc/bus/input/devices
5 k' c4 m% P* N7 B( E; P/ |1 T
! q. I; Q/ S4 W, o6 ?! a图 21
; D" ?2 [; h6 Q6 d* [
& M, ]1 Z+ @/ C从上图中可以看到按键事件号为event0,执行如下命令进行按键测试。
/ P2 f* C4 k0 |. y7 [9 iTarget#od -x /dev/input/event0
( v$ N/ l6 \; z; `, I$ V先后按下评估板的2个用户按键,可看到如下打印信息。按”Ctrl+C”可终止测试命令。3 ]+ d  Q& W  [* R0 S* i9 S
# ]  a# Z; X+ U9 a
图 22
( \- T4 a; P; U* n
: P/ x; v& T7 j/ l) {% a& ?2 T, w3 ~  M  U
时钟设置测试Linux系统中分别有系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。! ]7 z1 u! j* N/ H2 F7 K+ }- [
如需使用RTC时钟,请先安装RTC电池。以下为时钟相关的常用命令。
2 h$ y2 P' Y2 X- n: C4 XTarget#date
" R% r" f: s$ V& G9 k
! `. h/ ^5 k7 C4 y2 Q. r9 J# @( I图 23
" o7 }* R: o1 w2 C8 |7 ~5 |; P) X7 _- p" R1 e
Target# hwclock -u$ l5 x0 g& o1 ]& R2 @3 e6 D% \

  Z- m; I" u9 `: g1 k; J' G图 243 y, i/ o& G  w  V9 k9 ^

5 N0 ?" }8 ~4 Y$ }. q+ qTarget# date -s “2020-08-07 15:27:00”//设置时间:2020年8月7日15点27分00秒
  R% K9 n2 f" h9 G( q$ dTarget# date
% c: T* |1 J. C
; B9 N4 u1 m/ c& X; M7 M4 N图 25' t- Z0 F! r; o& N
  k. H! V1 a- v& i
Target#hwclock --systohc -u
+ t" q! \" V  Q' o: cTarget# hwclock -u2 ^7 p  r0 t- Z: [

. U& c0 M8 m8 I/ J, b图 26, f) Y9 _0 T% \
1 L' S/ r0 ?3 s) f& ]1 U& E+ V6 ^
Target#hwclock --hctosys -u
( R/ Q6 x3 ]3 K% Z. J2 g( a) v6 r/ s6 q
图 27" v) {* C8 B) T# M

' C, G/ I" ]- N# S6 P3 ~4 J( }7 ]7 {" J( A% S
CAN总线测试" W. v2 c/ d: L7 l4 V8 a: \" H( M- g% Z
评估板有两个CAN接口,测试方法为:将两个CAN接口连接,测试两个CAN接口互相收发数据的正确性。3 F- R  K9 S' P' h* s* ~* i: J/ A
0 c1 T/ j% A1 ]0 c/ R, Z2 H
图 283 q, @* V: P# a! d0 [$ r
6 x; }6 Z' G. U2 U% p& {
请按如下方法连接两个CAN接口。7 @/ |- P1 q  y, W
进入评估板文件系统,并执行如下命令查看CAN设备。
9 \; \  `: I8 b' L( ~Target#cat /proc/net/dev! s9 O7 ~( i/ J" k5 G

, a8 U( U% w7 t! |' o' I; w0 _图 29
  ?- N: P$ m% d7 q! D' @; O- Z8 Q) H# D2 `8 [, o/ h
执行如下命令可查看CAN配置命令的使用方法。
4 p' e, w" f" {1 t' y7 M5 ]Target#canconfig --help
) j8 v9 u# p5 C5 K6 E& u8 J, F& P: g4 \/ p1 y1 n/ k
图 30* ~4 ~* O4 N5 J( E
! f  u" Y& @) o" l4 p8 U+ m
将产品资料“4-软件资料\Demo\platform-test-demos\can_test”文件夹下的两个脚本程序canconfig-can0-1.sh和can0-to-can1-test.sh拷贝到评估板文件系统任意路径下。在脚本程序所在路径执行如下命令运行脚本程序,测试CAN接口通信功能。
7 u. ]3 ^7 L% @+ c* }# P9 pTarget#./canconfig-can0-1.sh
) Y4 f! y# C( [. K; a  Y1 d! O' t5 o/ I; Q% k
图 31
, V, _, E# j' p
0 {$ t" {8 |, J- D! p. G: UTarget#./can0-to-can1-test.sh3 q3 a: ?7 m, f! y+ ?
+ q* d1 }( c1 K$ ~1 b7 m% M% i
图 323 O6 J9 s3 R" q2 r# s4 L

9 ^  b' U1 V" y9 d* V8 c6 u脚本程序的任务是从CAN0发送20帧预设数据到CAN1,同时从CAN1发送20帧预设数据到CAN0,并保存此两组数据到can0to1data.txt和can1to0data.txt文件。
. |: k0 I+ h* C2 ]8 O' l3 Y' h  B9 A) `6 A% V0 q, F
图 33
7 A; G3 s6 M, [/ }" H% r% g9 a2 m- b/ U- W
打开当前目录下生成的can0to1data.txt和can1to0data.txt文件,查看文件内容数是否和下图一致。如一致则表示CAN通信功能正常。& G  C, W; U. y  B1 s: Z8 F
Target#cat can0to1data.txt8 M' T0 j% B7 G! e1 l; T
Target#cat can1to0data.txt/ u+ L' c6 F7 C. F0 J0 _& A
7 V, n. |$ {7 }( l. F* d
图 343 L3 h5 y; M. \& B
3 w; s4 ^' \9 q1 {% Q

! p) Q' j1 x! q/ SFRAM读写测试本小节对评估板FRAM进行读写测试。- _0 @! B, g7 Q0 m% R5 A
执行如下命令,将字符串数据写到FRAM。  L; D8 h. P- E
Target#echo "www.tronlong.com" > /sys/devices/platform/44000000.ocp/4819c000.i2c/i2c-2/2-0050/eeprom
  M. Y/ s+ C, E5 t9 K/ \0 U执行如下命令,读取写入到FRAM的数据。: e- R1 [" M  W6 c3 P, B$ R
Target#head -c 16 /sys/class/i2c-adapter/i2c-2/2-0050/eeprom
5 a) D; ^5 Y# C& q2 w$ N2 B) ^; o1 A. D- M* i
图 35! s: \' B0 D, a1 F- C
4 V5 u8 O$ a3 Y" C* b7 s4 u
DDR读写测试Linux系统启动时,在U-Boot阶段完成DDR的初始化,并打印DDR实际容量,如下图所示。6 v) \- I) k* d$ Q* {8 @4 o
% G$ S! g: h8 e5 ^
图 36" b& s4 P) C" q4 Z, i0 [$ j
DDR读写速度受实际情况影响,测试速率以具体情况为准,以下测试数据仅供参考。" d/ `, Y  T. q1 W% Y
进入评估板系统,执行如下命令对DDR读速度测试。+ z8 f: L: w5 Y( j& T# N4 g2 b
Target#bw_mem 100M rd
: o' c7 a* P8 x
5 |( H! H" I. t3 \图 37
" K, B# X  ~6 @' G9 w( M测试从DDR中读取100MByte数据,可看到本次测试的读速度约为:375.03MB/s。
$ }& w0 l- }/ O4 r: K: _/ n) |  S8 y进入评估板系统,执行如下命令对DDR写速度测试。- A& Q' Y' a1 F8 H
Target#bw_mem 100M wr/ S! h' d. t/ b5 l, H
: x- t" ^+ I0 q9 k4 a) e6 H
图 38
% y  U+ G: r- j# \1 p8 A8 x! s9 U1 |6 X; Z* y
测试写入100MByte数据到DDR中,可看到本次测试的写速度约为:275.43MB/s。% N7 {( F) w( K& n& Y8 C
进入评估板系统,执行如下命令对DDR拷贝速度测试。
: V3 r' U4 u- aTarget#bw_mem 100M cp
& b4 E% T8 \2 @: D) ^! @) O
  G2 x/ A4 t& R9 m/ z图 39) V7 f) N1 x4 C1 G% L9 L9 o
测试拷贝100MByte数据到DDR中,可看到本次测试的拷贝速度约为:195.63MB/s。
5 v" f0 C8 d  ^/ r6 V5 [- V) d( x  H5 t6 f) }  k$ z; t4 H

作者: modengxian111    时间: 2020-9-21 13:45
步骤很详细,谢谢分享




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2