|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
A40i T3 开发板功能测试
& Q$ o6 T6 R9 z0 O) O& O硬件平台:飞凌嵌入式OKA40i-C/OKT3-C开发板, 基于国产芯片 A40i(工业级) T3(车规级)设计研发。
3 ~3 J o2 x: V此章节主要说明A40i T3开发板外扩接口的使用方法。本章节测试所用到的测试程序在飞凌提供的Demo中已有集成,故不做文件来源说明,直接进行命令操作。所有命令均以#标识,请客户使用前将#去除再进行输入。
; C' e1 l! L3 ~! g一、 WIFI测试RTL8723bu—USB WIFI、SDIO-WIFI 8189ES使用方法如下。4 R# Z6 j$ L7 p
1、 板载WIFI的使用/ l% f1 F# h& j) P) X. T
如果开发板有板载的WIFI无线局域网卡,则焊接在评估板如图所示位置:- M' H8 W/ C. x' {" n+ p" b
![]()
9 T$ m$ n$ ] S( V
5 _! r% z" g* z2 d. A; {! J; j: ?步骤1:检查开发板是否已经焊接该模块,正确焊接如上图。连接上天线。
) u; T' C/ M/ `# Y步骤2:开发板上电,启动Linux系统。手动加载模块:
( E6 R0 e3 K; f; }. U$ n/ E: f#insmod /lib/modules/$(uname -r)/8723bu.ko( ^/ I( K2 Y5 ?5 n9 b7 [ Y' G
查看模块是否加载:1 q& d$ _! ?+ s- \5 L
#lsmod
, a y! n8 Q$ K# L, ^3 t9 Y) f8723bu 1920908 0 - Live 0xbf19a000" j" z ]3 `% q( {- Q
步骤3:自动分配IP; ^) i q5 N: t4 P! d# e' r. E
#wifi.sh -i 8723 -s ciscosbwifi -p abcdefghijklmn
2 m3 s' \' X) O# A. z其中-i:8189或者8723,-s:wifi ssid,-p:wifi password或者NONE( b6 l& i" o" d5 }$ O8 x7 f/ f
wifi 8723, c$ i: P: y0 m" W& G
ssid ciscosbwifi1 N$ C) }2 m" I3 p3 U u/ d+ r
pasw abcdefghijklmn. ^+ i5 T. s, L
Successfully initialized wpa_supplicant) G% P9 [9 o. v7 g7 y. z5 a
RFkill: Cannot open RFKILL control device
$ F9 C5 j5 l- F+ I: x* Z" uwlan0: Trying to associate with bc:67:1c:41:2e:3c (SSID='ciscosbwifi' freq=2437 MHz)7 O& g& h' }0 b+ }' S1 i3 @
wlan0: Associated with bc:67:1c:41:2e:3c3 p. H; s8 o2 ?! p1 r0 y% g. ]/ h
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
) S6 _* p/ r. P) y5 Fwlan0: WPA: Key negotiation completed with bc:67:1c:41:2e:3c [PTK=CCMP GTK=CCMP]
2 h/ d( }) ]/ H. V) S. owlan0: CTRL-EVENT-CONNECTED - Connection to bc:67:1c:41:2e:3c completed [id=0 id_str=]
* o! k$ l# G/ ~' {8 Oudhcpc: started, v1.25.1$ B% X. |) [9 ~# C2 H3 X! c" k& h0 A
udhcpc: sending discover
2 j# _9 @3 s4 T N( }3 v$ W$ \; @& u3 fudhcpc: sending select for 192.168.1.131 C$ }# P3 c9 \8 M, P
udhcpc: lease of 192.168.1.131 obtained, lease time 86400
* Y, O3 t/ ?3 h" J- j: `7 vdeleting routers1 f# k8 e' t8 J U9 u9 e
adding dns 222.222.202.202 B7 Z3 Z( V! ?1 l4 ~, p! ?+ j
adding dns 222.222.222.222
( m# t& ]7 }; C3 L) J l# J9 HFinshed!
( o; J8 I$ q$ e$ S% u |
1 F- ~$ I' ~3 z5 u8 Y/ U3 P步骤4:ping ip或者域名,命令如下。8 f( I" [" Y* c# B7 W6 ?: m h
#ifconfig eth0 down
( Q# Z8 w G5 z6 P0 r" [#ping www.forlinx.com
3 m7 V! G1 G# S' H步骤5:卸载已经加入内核的模块。9 K8 I; F3 z& l6 N' |
#rmmod 8723bu* {4 s# X0 c3 i: T v
注意卸载模块前,请将wpa_supplicant与udhcpc -i wlan0进程kill。否则会加载一些信息。
t, w0 _, f& M z* x1 C注:本小节中是一个WIFI连接路由的示例。由于网络环境的不同,所以在您做本实验时,请根据实际情况进行设置。+ T+ G# F: U* w/ c: z; S
2、 SDIO-WIFI RTL8189的使用1 C" S. _8 G2 {- t& P* m* Y
步骤1:插入模块,开发板上电。6 P% U+ y" J! v6 F9 E0 Q9 z% T4 E
步骤2:手动加载模块
; {) c( Y x( T3 h' T$ L+ h#insmod /lib/modules/$(uname -r)/8189es.ko! y h& m! C6 l4 _
步骤3:自动分配IP
9 ~8 T" e; v- b9 i+ J; O) H#/usr/sbin/wifi.sh -i 8189 -s ciscosbwifi -p abcdefghijklmn
* c! X4 m Q- f' }其中-i:8189或者8723,-s:wifi ssid,-p:wifi password或者NONE
" e- f: Y% H3 i+ ~[ 540.748544] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready: ^# p3 ?$ S# Y: ~) y; |% J
udhcpc (v1.18.3) started" c& ^9 }; d4 f/ z ~
Sending discover...
" G2 |! w/ e9 R F7 {[ 542.214046] RTL871X: rtw_set_802_11_connect(wlan0) fw_state=0x00000008% X" o, m) n: W5 O, X
[ 542.240264] RTL871X: start auth" k: Y" x& j5 \
[ 542.260150] RTL871X: auth success, start assoc
- d) X/ ], F- N9 z/ y, D5 t R; I[ 542.280348] RTL871X: assoc success) h4 _9 \* Q6 y" l
[ 542.284224] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready$ t9 ~- ]8 }) X% D1 T1 B( g( @. j; d
[ 542.294711] RTL871X: send eapol packet
; Y6 T( }& z2 }1 y" c( i[ 542.310877] RTL871X: send eapol packet/ P) N8 W# ~; v o" d2 d/ r/ f& c
[ 542.315351] RTL871X: set pairwise key camid:4, addr:bc:67:1c:41:2e:3c, kid:0, type:AES; F- T0 }1 B8 ~. Q
[ 542.324851] RTL871X: set group key camid:5, addr:bc:67:1c:41:2e:3c, kid:1, type:AES
$ B" A; m& L- w5 uSending discover...3 X& C. L6 \1 o
Sending select for 192.168.1.127...
% q, D% f. v, }# W0 d# M1 ULease of 192.168.1.127 obtained, lease time 86400
& S9 G) b. t% v4 c* x) p+ }deleting routers
1 O/ [$ f S% Y3 z0 T) troute: SIOCDELRT: No such process0 B' r( B% B1 z8 D
adding dns 222.222.202.202
& b2 U' k7 a1 F, L+ Vadding dns 222.222.222.222
8 E4 ]% i$ l& s |
; Z: E6 L/ K0 @ A步骤4:ping ip或者域名,命令如下。
3 J8 K: _9 F6 t4 ~) l5 e: o. c#ifconfig eth0 down
- N% M& [" L! x' k1 ]#ping www.forlinx.com
- ?! h, D, F: [7 I步骤5:卸载已经加入内核的模块。3 c5 D8 ~( n$ k% U
#rmmod 8189es
" n8 u# Z% D/ a# s1 `) i注意卸载模块前,请将wpa_supplicant与udhcpc -i wlan0进程kill。否则会加载一些信息。
# d. i8 Q: U7 W7 ^注:本小节中是一个WIFI连接路由的示例。由于网络环境的不同,所以在您做本实验时,请根据实际情况进行设置。
4 ~- a) E s. U5 b& ?- C3、 热点测试7 N# R+ V6 [" @- ?9 z
WiFi热点:2 m* M: T) S) \) l- n, Y# C
#insmod /lib/modules/$(uname -r)/8723bu.ko
- P6 N- L& ?7 `5 |9 U#/usr/sbin/wifiap.sh
6 D0 E' r3 G. X4 Y+ r; w生成ssid为forlinx_a40i,密码为12345678的AP节点,手机连接forlinx_a40i,可连接外网。
/ f; z8 Z' k: N3 l( l0 W, K- ^注意:有线网卡要连接一个有开启dhcp服务的网络路由器,并且可以访问互联网。5 `4 F5 S1 T! n3 `9 ]$ {
二、 SDHC/TF卡驱动测试开发板支持SD或TF卡热插拔。插上SD或者TF卡后系统自动将其挂载到/mnt/sdcard/mmcblk1p1目录下,移除时,将sd卡或TF卡卸载。
' J% t6 B) A+ _: w3 Y1 B6 A查看SD卡中的文件,命令如下:( @, P* v% n4 t1 L6 I( N8 D+ ~: ?) ^
# ls -la /mnt/sdcard/mmcblk1p1/
0 d+ [2 X9 k8 Q$ M1 O& gtotal 5
& _8 o# ]: L$ O- ^- @drw-rw-rw- 2 root root 4096 Jan 1 00:00 .
" ?" \" e% ^* O* D& V/ i6 u5 cdrwxrwxrwx 4 root root 1024 Jan 1 00:30 ..
2 i+ c2 d. Y! @0 j' e7 G( l-rw-rw-rw- 1 root root 0 Jul 5 2019 sdcard.txt
. B; L8 Q9 M/ t0 F# N1 n往 SD 卡中写入文件,命令如下,写1到test.txt 文件中:
4 ^* ^* c7 N- s' l# echo 1 > /mnt/sdcard/mmcblk1p1/test.txt
. X9 n2 k2 p8 y0 z# sync( `! R" [! p0 _. L3 h
读取 SD 卡中test.txt 文件,命令如下:. t" M) u( n- h0 Z/ j
# cat /mnt/sdcard/mmcblk1p1/test.txt9 W% |" N- K4 n! m& I
1
- I7 Q9 t# r4 X1 w3 ~4 p会读到刚才我们写入的1。# j( Z! r- T% g/ ^8 C
注意:同时插入sd卡与tf卡时,只挂载第一个插入的卡,挂载另一个卡,可使用mount命令挂载。
# q. l; Z, r. L: j, s l1 f3 s三、 USB接口测试1、 USB Host接口存储测试3 M0 O7 W' N% L3 L4 ^, f; c4 K. z
这里用挂载U盘为例进行演示,目前U盘测试支持到32G,32G以上并未测试。U盘与开发板物理连接如图:
. z1 g- h+ o) l6 Q/ Q+ `4 X![]()
) }8 j5 _; d2 c同时终端会打印关于U盘的信息,由于存在很多种U盘,显示的信息可能会有差别。
! t1 H" d$ N2 g9 Y+ x8 o步骤1:连接USB 接口u盘到USB host接口,会自动挂载到/mnt/usb/sdx1目录下。( X; |2 {6 O: {0 o$ m% a5 N( l0 K
步骤2:查看usb存储设备, |, @, U% C6 Z N* g
# ls -l /mnt/usb/
* v/ x* _* ^- c3 ctotal 21
* x5 e# b5 ?$ E; ^8 }3 L+ d$ K, Sdrwxrwxrwx 7 root root 16384 Jan 1 00:00 sda1: N& n% n M6 [' l
drwxr-xr-x 2 root root 1024 Jan 1 00:38 sda4
' M8 [) F6 O" v) v& p9 d3 P4 mdrwxrwxrwx 2 root root 4096 Jan 1 00:00 sdb1$ f5 m" k" p* U% Q
# ls -la /mnt/usb/sdb1/# o& b9 L8 q; N6 F
total 58 A8 i6 F1 e/ p/ ]
drwxrwxrwx 2 root root 4096 Jan 1 00:41 .
+ I. H5 h) c6 t& M' i5 n R+ F1 ]* M. u( Ldrwxrwxrwx 5 root root 1024 Jan 1 00:38 ..! ^5 Q0 X" S- R$ C2 N' y
-rwxrwxrwx 1 root root 0 Jul 5 2019 sdcard.txt
" ~& S! j# v; B' z+ p6 w9 V8 e步骤3:往U盘中写入文件
- p8 T3 m4 d5 h& a. o#echo 1 > /mnt/usb/sdb1/test.txt //写1到test.txt 文件
9 r" X8 `$ y6 J9 }9 o9 r#sync //将内容从内存同步到U盘中
5 r; Q) ?% I0 s; o步骤4:读取U盘中内容
) Y! i$ m \8 x9 q! i#cat /mnt/usb/sdb1/test.txt
$ S7 M8 T9 U) X6 u1 W1% ^4 {" }; Y* A+ T; v
会读到刚才我们写入的1。- f, V0 S7 V6 t) j3 M
2、 OTG转Host测试* @) M& `) Y6 h0 K2 \* X
使用otg转host线连接到otg口,插入u盘能读取u盘内容。将U盘挂载到/mnt/usb/sdx1目录下。操作同U盘操作。8 C/ P% Q* S v9 I/ m; c: e. J' g
3 K0 ~* _1 I$ M
3、 OTG默认成Host端口功能
3 M2 o- n8 n3 H f7 ~+ N/ H$ w修改/adb.sh
; z% G6 Z7 h: r: ^ D W3 F#kill -9 $(pidof adb-service)& u& y4 J/ H0 r, l- ]
#mkdir -p /system4 R: K" T$ d: N x- r5 r4 @
#ln -s /bin /system/bin
3 C. L2 _7 {1 z5 {8 _8 x9 V6 \cat /sys/bus/platform/devices/usbc0.2/usb_host" Y. [2 l1 V# k: b, t
#echo 0 > /sys/class/android_usb/android0/enable
9 p9 i' x& g" {$ L4 ~( n#echo 1f3a > /sys/class/android_usb/android0/idVendor
: E+ k. q( D& W" T#echo 1002 > /sys/class/android_usb/android0/idProduct
- M+ `" b$ C/ j: I" M8 l) y#echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
( o5 h; t) u! o8 s3 j) r% G#echo 1 > /sys/class/android_usb/android0/enable7 n m4 n4 h n: S1 o( p
#. /qt5.9.sh
. P7 s3 D V2 I6 c" }" i8 n- z#/bin/adb-service &2 B- b) M( @: s4 y) G" i! h
4、 USB转4串口
% q$ V4 x% g3 m- K$ \, ^6 q插上usb转串口到开发板的usb host端口5 N2 ]! S* _6 o& q. D4 D E8 _) c* W
可选:生成和板子usb host丝印号相关的串口名字
" u7 V* `- h/ P6 V) m# |# create_xr_usb_serial.sh
9 t4 |/ h% f4 E说明:usb转4串口生成的名字默认是/dev/ttyXRUSB*;
6 S" J& C8 y/ k- k/ c; S6 T![]()
2 D0 I8 Z D# H S3 V四、 以太网驱动测试网络相关配置声明:
% A2 i8 B" A( v1 D" i每个开发板的网络使用环境未必相同,本节测试示例中,网络环境如下。实际使用中,请按照实际网络环境自行进行配置。
/ j7 Q; R/ j$ g, b% k5 f" yOKA40i有eth0 网卡。开机已设置默认eth0的IP地址为192.168.0.232。如果修改默认IP请修改/etc/init.d/auto_config_network。
: z2 n' C4 x w4 s# k# G9 s下面以eth0为例进行命令说明。7 a9 o* o% t# ?6 u( T" H
1、手动配置eth0" H# d" o* k! I
01. 在Linux系统下,使用ifconfig命令可以显示或配置网络设备,其常用的组合命令格式如下:! c9 Z* K- O. W& K6 N
#ifconfig 网络端口 IP地址 hw<HW> ether MAC地址 netmask 掩码地址 broadcast 广播地址 [up|down]
8 A" \. c' A l02. 设置IP地址; s8 [; N/ R4 q l
# ifconfig eth0 192.168.1.120(将eth0设置IP为192.168.1.120)1 t6 Q2 B: H% \+ N4 L) G @# c; b) A
# ifconfig eth0 (查看当前网络状况)- C. W: q$ a2 n5 P$ V6 K, U& m& S
03. 修改mac地址/ M5 t4 d* o% L- f$ N+ t1 j
i.先关闭网卡设备
/ [6 T d8 d4 a4 G) H#ifconfig eth0 down0 @$ m; Q/ K& }/ r. K$ v
ii.修改MAC& E. z* E+ x" M2 r4 X! R
# ifconfig eth0 hw ether 36:C9:E3:F1:B8:05
1 c0 }5 W2 K |! Q: @![]()
' t0 i3 d+ d- G3 K: Xiii.重新打开网卡
+ o$ f- q* N5 C7 H#ifconfig eth0 up
. ?* ?8 r( W& I% z$ T( [4 B: |04. 设置子网掩码
( a* j( C. p5 s# L- P! y" P+ l#ifconfig eth0 netmask 255.255.255.0+ m) Q' Q( T3 ~% O. q( n
![]()
" R! }- K( w4 y1 e05. 设置广播地址) z1 q+ }4 v% t# I7 {
#ifconfig eth0 broadcast 192.168.0.255
# `$ ?. {4 h/ h5 g![]()
5 n( `/ U* a1 {9 q+ H06. 添加/删除默认网关
- [! s8 t% v& z0 Y. V D5 u添加默认网关:
) f, k6 \1 H. V5 Y1 A: y4 n0 ?" w1 J" \) P#route add default gw 192.168.0.1: \4 P" O: I, v5 x1 m) d& m# w. h
删除默认网关:
# ?- u- E7 i/ o$ j; D4 d; f: |+ m! N#route del default gw 192.168.0.1( V5 H1 ~2 N, O0 Z( D
07. 关闭开启网卡7 o' E% l1 ^6 m
关闭eth0网卡* o1 K* F4 P4 w! I
#ifconfig eth0 down) ~' J9 @, g( j5 J
开启eth0网卡
$ C- ]$ Y! ]% v6 r! b, s, F9 h& e#ifconfig eth0 up# G f4 S6 a9 ^" ~" J/ Y
08. ethtool查看网络信息
: ?: f/ h$ I& Q9 G' P5 p, A5 J# ethtool eth0
" S3 M% ?$ g6 ^! @9 z3 B( H. jSettings for eth0:4 I5 g# k9 e; n$ Z& `0 m6 R) s) e
Supported ports: [ TP MII ] i$ y6 s! k) f
Supported link modes: 10baseT/Half 10baseT/Full
& e0 l ^* n2 P" W5 G 100baseT/Half 100baseT/Full
: ]* E9 H1 s/ E: F3 I Supports auto-negotiation: Yes
( V4 Y8 x0 G9 m. I1 z Advertised link modes: 10baseT/Half 10baseT/Full8 c4 T$ C4 D5 d, P
100baseT/Half 100baseT/Full
$ |4 v. S% c4 ]& P6 _! z, v Advertised pause frame use: No' `% n, l8 K7 q
Advertised auto-negotiation: Yes- J7 ~- \, R- o* I& F
Speed: 100Mb/s
/ D$ `! M9 i7 ~8 n c Duplex: Full
- m$ @& s$ S3 g- Y# X Port: MII
! ^! o" i. l8 O3 v PHYAD: 1* g! Y' d0 J! E- Y" F* [" h$ ?
Transceiver: external0 B4 K$ D' G/ T! h/ R* z
Auto-negotiation: on; w- M* C% X, I7 m: o" Y6 n
Link detected: yes0 j5 {, y) o& ^- n1 G7 ]+ ^/ N
2、动态设置IP地址
! |# q$ N/ F2 L如果您的开发板与路由器连接,且路由器支持DHCP自动IP地址分配可以在超级终端里面输入命令:) u3 Z$ ?' F5 o: d1 X+ t
#udhcpc -i eth0
4 R9 r. U/ W& {4 d9 u4 V用来动态获取IP地址,“-i” 参数用来指定网卡名称,飞凌开发板有线网络的网卡名称为eth0。
; S/ D: @) }. k. k) V3 Z8 U- D: q/etc/resolv.conf文件中有dns服务器信息会被自动添加。
8 x- i- g9 ^$ F3 B' J+ a- P. W五、 以太网相关服务以太网相关服务测试之前,确保已经设置好IP。设置IP请参考以太网驱动测试部分。. S/ L6 ?. w& k) k0 k' Q1 y9 G
1、 Telnet服务( l1 l% Z6 Y: I5 m( B/ g# e: G
OKA40i-C开发板已经启动了telnet服务,设置好IP地址后就可以作为一台telnet服务器了。
" {2 b: d$ `. i/ T+ o查看是否启动可以输入命令:! h4 H: ^) w5 Y5 K0 {& ~5 V& ]
#netstat -al
. g1 |1 ]; x T2 x. k例如,开发板IP地址为192.168.0.232,在Windows的命令窗口下输入telnet 192.168.0.232 ,用户名输入root,密码为root(具体根据自己的设置)(开始->运行,输入cmd回车,即可进入Windows的命令窗口)
0 O0 `7 W- a0 a, f, V' Q之后就输入Ctrl +C终止服务加载。2 X( U+ Z' R& P5 [5 U' m8 G
( F0 D( X& A; X% |3 ^
2、 sshd服务
7 }" U! j. q8 mOKA40i-C开发板在/etc/init.d/rcS 脚本文件中已经启动了ssh服务,设置好IP地址后就可以作为一台sshd sftp-server 服务器了。
% A# A/ ^ k9 s v测试前,设置root的密码比如为123,同时修改sshd的配置文件/etc/ssh/sshd_config,允许root登录。将#PermitRootLogin prohibit-password 修改为PermitRootLogin yes,保存退出之后,重启,需要将开发板设置为当前UTC时间。并且用户名和密码不能写成一样。2 L- Z' ~" d8 a
查看是否启动可以输入命令:
( @2 Z5 l! \9 U* r0 M#netstat -al! ]- q+ r. _/ d& i2 I) U
例如,开发板IP地址为192.168.0.232,在Windows打开putty, 192.168.0.232,输入用户名root,密码123,如下图;
) M- X: `! C+ f1 B2 o1 C ( p7 y# I. V" ]
登录后如下图;0 Z2 Y5 O' `9 ]* E) d2 H: M2 q9 N
: P0 q6 s7 I4 T' Q: i0 I9 _
sftp-server文件服务0 Z7 j% S' C+ y' j0 D; \: y* {
开发板IP地址为192.168.0.232,在Windows打开WinScp, 192.168.0.232 ,用户名输入root,root,如下图;
# W7 I% d4 V' K' {# n / S# K$ Q& V% ~& g# F
登录成功后的界面如下图0 m- [: e2 h- q) F- \- h2 ?. i
![]()
, M) M% P( r; m+ |' E) Y/ o# r注意:出现登录成功后界面之前需要等待一段时间;: i% A& n# I; B5 |8 v5 i
3、 Web服务
$ _( z$ h8 G6 N ^我们在开发板上移植了一个webserver:boa;
' [$ [4 e0 T& E* ^boa webserver是一个小巧高效的web服务器,可运行在Unix或Linux平台,支持CGI,源代码开放;是一个非常适合于嵌入式系统的单任务http服务器。
1 k* N H& h( N如果系统没有默认IP,临时使用ifconfig配置。9 }2 z( v) [- U- h2 q7 N- ?) s
系统启动时已经自动启动了boa服务,在IE中输入开发板的IP地址即可浏览开发板webserver中的网页。下图是在IE中浏览的截图:
& O0 r- a2 n( F. y+ `5 z+ ~+ g# y![]()
x/ i; J3 x: \9 n- B1 x3 N; M4、 VSFTP" V& V6 U. d7 C
开发板作为服务器. b3 c N) E$ I% M+ u! ?; f
系统启动时已经自动启动了ftp服务,可在电脑上用ftp软件访问,用户名root,密码root(测试前,需先使用passwd命令设置密码,这里设置为root);
* i. L+ z0 X8 p7 y1 G" Q! k8 ?下图是在PC机上用ftp://192.168.0.232访问ftp 的截图: W. |" s! W3 c- C6 }$ I
+ r3 a2 j; [: V0 H ~+ J- n% Q4 A
/ F; E# Z/ W) Z6 g l9 o9 W
开发板作为客户端+ ? [( o! U9 N: p! L6 J
假设ftp服务器的IP地址为192.168.0.72,采用ftp命令传输下载文件,可以使用如下命令。
$ F: J( B8 ]- H1 Mftpput -u root -p root 192.168.0.72 test.mp4 test.mp4使用此命令将开发板文件传输到ftp服务器。$ g1 d9 q# m# m, ]3 { v+ |' d+ C( _
ftpget -u root -p root 192.168.0.72 test.mp4 test.mp4 使用此命令将服务器端文件下载到开发板% N$ o3 q- N( ~( \
( W+ m$ M; s: F& E* N" g' z
六、 看门狗测试看门狗是嵌入式系统中经常用到的功能。看门狗驱动指定系统最大为16s倒计时重启。为了防止系统复位,可在计数的16s内向watchdog写入清零命令,重新计数。4 z) y+ |% M$ z# ^2 g+ v
1.执行10s复位命令:
7 t4 U5 R) m5 G o6 {#/usr/bin/watchdog /dev/watchdog settimeout 10 &
5 D+ ~' d- U8 X$ g' l8 ]# i" Y# O10s后系统重启。
6 ~/ E$ K/ y4 A) l n" m3 U: k# |2.周期喂狗
; \% U+ R/ |$ S#/usr/bin/watchdog /dev/watchdog keepalive 10 &+ h6 r; m+ L x% @& ~" o$ j) E
一直循环喂狗,系统不重启。10表示10s喂狗& c, X/ _. O$ K& C
七、 放/录音测试用户可以使用文件系统内带的ALSA音频录制、播放、配置工具进行测试。
( n( t& m0 s" A3 Y. G9 Z+ p" d6 _1.耳机放音测试. Y- C' R' R. ?/ d/ p
如果耳机与喇叭同时打开时,默认从喇叭输出。需拔出喇叭。
6 U! i N% I+ V- l#aplay -Dhw:0,0 /root/wo.wav 播放音频文件+ o# [3 O) Q- {. \9 H0 I$ G% c* ~, Q
串口信息:. `. r3 ?0 T4 Q9 z
Playing WAVE '/usr/bin/Rear_Center.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo1 r( M; y) g& E0 v
1. speaker放音测试5 Q K9 `! Y7 M1 q, g& H( A
#amixer cset numid=15,iface=MIXER,name='Phone Out Mixer LOMIX Switch' on- d# U9 I( ]9 E* U: |
#amixer cset numid=16,iface=MIXER,name='Phone Out Mixer ROMIX Switch' on% @8 b/ `4 W) g" P' I
#amixer cset numid=48,iface=MIXER,name='Phoneout Speaker Switch' on
1 ?" _3 H; g8 c1 n7 t8 [5 N#amixer cset numid=2,iface=MIXER,name='digital volume' 50 /*设置音量*/
0 N1 J3 }* L& \0 Z( P& n播放音频文件:
! j2 i& ^) C# i1 f#aplay -Dhw:0,0 /root/wo.wav 播放音频文件
# f1 O2 C5 {. ?& @! I. y- a/ I e串口信息:
; `* k; A3 S( F. `& }Playing WAVE '/usr/bin/Rear_Center.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
# C' x+ b* ^* ]3 I* }/ ]9 w2. 录音测试8 w$ V; o1 {. H& z
# killall -9 Launcher
$ w6 u x i2 D6 f1 c4 w8 r# killall -9 MediaUI- F$ F% c8 K# n+ a- \
# killall -9 CameraUI% O/ Z: D4 {+ g) {8 _
#arecord -Dhw:0,0 -r 44100 -f S16_LE -d 10 record.wav 录音
* p: _, T7 p2 ~0 o- N串口信息:/ t U. d1 p/ \' P1 e) w- w- u
Recording WAVE 'record.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
( M5 ^5 V: o% c/ F! p: u/ R) n8 n播放录音
! p6 u1 j, W8 A9 Y5 P% [#aplay -Dhw:0,0 record.wav 播放录音4 u/ o5 i c }& ^8 x% ^4 i7 ?, _
串口信息:5 R0 g) c/ a, b$ A! p8 F0 w( w2 F
Playing WAVE 'record.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo6 ?& M; I3 f( x& p
八、 摄像头测试1、 USB摄像头测试% ^0 v# z$ }& }$ \! Q
一般USB摄像头插入之后,自动加载驱动。
- S5 _% Z: }2 Y6 }* r8 U01. 插入USB摄像头,在调试串口输入命令查看USB状态。1 Q0 I, O/ c' ~2 Q- |4 d& F$ R
# lsusb
1 f# }! ?5 H" _. t' H串口信息:
# V& R( g( d- L3 W- CBus 001 Device 004: ID 0909:0824% w, D' G" Z$ @! [: M! O
查看USB摄像头的ID信息。' L) ?, \; U; S% `7 g; ^" b! f
02. 输入命令查看USB摄像头的设备节点,可见设备节点video0
0 I! ~( i h: v' L& d0 D/ w' R# ls /dev/video*
_! P0 r# i' O* R2 ^串口信息:
) [ o0 T! t. A" }" R) e0 [/dev/video /dev/video0 其中/dev/video0为刚才插入的usb设备。
; b% ^; t* G( P03. 另外还可以采用UVccamera测试程序,预览图像:. U; y* J1 Z' m6 G" C' E
注意:uvccamera预览不能先使用自带qt应用测试CameraUI测试,如果测试后必须先重启。
+ b; A" `/ I$ n- C#ps# t- r: }2 o e* J5 F. L- T# f
1312 root /Launcher
+ N4 c ~) d3 I$ a, v/ w' g- s1313 root /MediaUI
+ v' |& q+ x4 [* S3 h& m1314 root /CameraUI
% J2 _1 ^ h/ o8 M将上述3个进程kill。 ]* |5 [# L4 `$ W
#kill -9 1312 1313 1314
0 Y2 n. @4 Y" H; m+ X#fbinit 0
P' F, y- _# s3 `5 |#fbinit 1
: ?4 f9 @1 \& `2 x p#fbinit 2
# ]: V: |2 l, q, |#uvccamera
* s2 v) q0 ?# V# D& ]0 f6 Bdevpth: /dev/video0$ `, C/ n9 }4 w" t- Q2 Z6 H
width: 800
: V* f- @$ z- g- D3 o3 z {1 F m height: 600
& I: T" |* G6 s) wposition: (0, 0)& R2 \( ~6 t0 _4 A
frame: (800, 600); L# H# m* F5 I7 n
format: 690 j8 M5 H6 p7 j5 Q' x3 R
[ION] map success: base 0xb6d14000, physical 59200000* s6 d/ d3 G# }" C' {
00000001 00000001
8 Q& N9 O/ c4 m6 ~! j5 V00000001 00000001
7 Y& R# A' ]2 `5 j0 j' o% K6 R* A8 Z9 \; d
04. 采用自带Qt应用测试CameraUI* z8 K" j' U" y1 i
测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用CameraUI测试。点击下面图标: 点击 选择节点为video0,确定,打开预览,可查看usb摄像头画面。: \4 q& i6 l+ E7 J: t
2 、CMOS-OV5640测试" D! {) E. I- m/ s
cmos ov5640还可以使用cameratest预览
- H) y0 ?( t- Z3 } w注意:使用uvccamera预览不能先使用自带qt应用测试CameraUI测试,如果测试后必须先重启。
% b" x* S) g8 a X- p: W e3 t#ps
: M* B" ^: b* |( U1312 root /Launcher
# k2 d; ^+ c9 l; J0 o) p o, _1313 root /MediaUI# D' ^4 c8 ]" R# X8 v+ S
1314 root /CameraUI* v6 g: e" \" Z6 f/ Q
将上述3个进程kill。
9 x# `% {1 o* @& B#kill -9 1312 1313 1314- \* h( Q4 D# ]
#fbinit 0
$ x0 h! G7 N! N1 d#fbinit 1
* d4 J! V0 C Z" e' w1 i#fbinit 2
" p4 X+ k8 Z0 u. \9 E- P# cameratest -d /dev/video1
) U, p& s5 U. D O2 V: S% ^) P其中video1是对应的节点。
L2 C0 f1 B1 \# Y1 \# l2 E8 Rdevpth: /dev/video1+ P+ i2 `: L; a3 q
width: 640
, F# P9 i" N* [$ l% t. U# C3 g( z- Xheight: 480; f, U" _; c3 k/ h: P q l
position: (0, 0)
- I- l" E! C$ u# i7 n5 y" }frame: (640, 480)
' r. p" R, c% |& pformat: 76
4 p; ~$ {9 Q# U" ]4 j" G \& D% Rfps: 30
$ G+ }, |. I$ S+ k2 m- \( mdragonboard(debug): the window: x: 0,y: 0,width: 640,height: 480/ l, \0 e' g6 l+ A+ d1 j
dragonboard(debug): the output type: 0
0 j$ e* {/ R+ d; _( Z8 U- WOKA40i平台支持OV5640预览。采用自带qt应用测试CameraUI
6 C5 k9 K* W: k+ X F8 F3 X0 D测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用CameraUI测试。点击下面图标: 点击 选择节点为video1(video1为ov5640产生的节点,具体根据实际选择),确定,打开预览,可查看ov5640的摄像头预览画面。
U9 [5 y" V! T! @% u3、 模拟摄像头测试
' [0 F8 c, J" S8 p* x/ ?$ S飞凌自制模拟摄像头模块如下图:& j8 v7 B5 U6 g! D, G
![]()
6 V, o! P% v. q( G% r( W+ ?video4-7为tvin产生的节点,左上角对应video7,左下角对应video6,右下角对应video5,右上角对应video4,根据实际情况选择 。+ A4 @; b& L& p4 q4 u" {
01. 采用自带qt应用测试CameraUI% o3 Y9 s0 a0 ?! z$ k; P7 B: N6 y
测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用 CameraUI测试。点击下面图标: 点击 选择节点为video4,确定,打开预览,可查看tvin的摄像头预览画面。其中CameraUI支持PAL格式。
) U1 W( W6 l- Z# k: J/ f' m02. 还可以采用sdktest进行测试。
! ?, m' S I# k+ a1 }1 ?#ps
- z* @, f" S3 Z( E- r$ C1312 root /Launcher9 j4 T6 K5 Y$ A2 L& _
1313 root /MediaUI
+ \- R. C. A0 Q( U7 z; Z1 X1314 root /CameraUI% U& @$ x, C6 D6 [3 F# {2 F: Z L
将上述3个进程kill。
/ a' M1 \! [* F5 C8 z7 w T#kill -9 1312 1313 1314
9 ~+ |1 u$ _: l! A% n#fbinit 0* L+ f w V( y) ~
#fbinit 1) j: T( \2 f# |! o+ S5 W' O) ^! Z; C
#fbinit 2
J2 Z/ ]8 G: Z! D) M |$ n# /sdktest 1 4可以采用PAL或者NTSC格式均可以。# z* s; `4 I9 j. W$ y
03. 模拟摄像头还可以使用tvdcamtester进行测试,此方式支持PAL方式。
# G! H" [- B% [2 W4 ]8 [# tvincamera -d /dev/video7
* p* B7 w }2 N1 f' Ydevpth: /dev/video7
8 Y% E: t: K2 j7 d8 z6 `. q' L width: 720
5 Z! _! b8 G% t3 T height: 576) V$ E9 k, v0 e
position: (0, 0)
: K# U+ O" T" O5 `/ W( B0 z& @ frame: (640, 480)5 N2 ~# p. O3 c5 ]. \9 @
format: 775 f' Z" a3 t# G) F
dragonboard(debug): v40 tvin test v1 version 2016.1.20
' f; H% J; I0 L1 U/ |; X8 ydragonboard(debug): the output type: 00 y' h. e/ t( \2 p! {9 Q
dragonboard(debug): screen width: 1024, height: 600
& ~5 E2 F3 d" {$ P6 Ddragonboard(debug): inp.index: 0
' V+ T7 @2 {0 xdragonboard(debug): *********image source width = 720, height = 576********$ E0 a5 C1 O1 S `5 [
| 6 p5 E8 O% t& G' M& G
九、 RTC时钟驱动测试RTC测试,主要通过使用date和hwclock工具设置查看软、硬件时间,测试当操作系统重启的时候,软件时钟读取RTC时钟是否同步(注意:确保板子上已经安装了纽扣电池)。
: r. I8 Z8 ~# ]% }2 u0 \2 d设置时间命令帮助如下:
2 I5 B8 _7 o6 t8 n2 o) a# date -help
: ?! U7 Q5 v. a+ {串口信息:
3 i; J' Y: m8 |5 M3 V0 A, WUsage: date [OPTIONS] [+FMT] [TIME]
5 V8 l& S7 _: L! U3 {display time (using +FMT), or set time
: ]" ~! Q/ n: o7 g [-s,--set] TIME Set time to TIME2 K h1 X- f" e
-u,--utc Work in UTC (don't convert to local time)
6 n# {, i6 [" P -R,--rfc-2822 Output RFC-2822 compliant date string, L& V+ T E# w" m- D/ J6 N! {' o
-I[SPEC] Output ISO-8601 compliant date string
1 z2 e. o9 G. X; }8 q" E: E/ _ SPEC='date' (default) for date only,- J" S7 O/ D/ o, ~2 Y
'hours', 'minutes', or 'seconds' for date and$ r% F( [. ~( j) [
time to the indicated precision* H; J" Y2 M' r, j
-r,--reference FILE Display last modification time of FILE+ C/ X1 f! u8 W4 Z9 H
-d,--date TIME Display TIME, not 'now'# t8 ]" s! O7 H
-D FMT Use FMT for -d TIME conversion
5 V. X2 W2 u" H: |6 N# Z4 ?, @0 l1 Q( a. P$ G6 K
Recognized TIME formats:
, b3 E6 R4 i4 B2 H. m% q hh:mm[:ss]: i0 m% L1 {: z7 a. D
[YYYY.]MM.DD-hh:mm[:ss]
, r# ~; h, a8 Z+ r0 d- F YYYY-MM-DD hh:mm[:ss]
+ g( k5 Y0 @% a8 ? [[[[[YY]YY]MM]DD]hh]mm[.ss]1 d& z1 O) j2 W& t6 x$ J3 k0 e
'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead1 q+ f, e( m. W
设置时间如下命令
- N5 }' _' R7 M" M8 K. _#date -s 2015.05.29-09:47:13
/ s) J6 L2 B/ _- l+ ]' v串口信息:
1 ]) C/ l6 d) F; ?; Z& u4 cFri May 29 09:47:13 UTC 2015
; j% K' j, B, y; `# ~% a说明:date设置的格式:MMDDhhmm[[YY]YY][.ss], MM是月份,DD是日期,hh是小时,mm是分钟, 年份可以写2位的YY或4位YYYY,秒可以用.ss表示。; L/ J2 P5 [- y
hwclock —查看下硬件时间
/ [ i3 _, E7 s) E- S/ g#hwclock –help
4 \, Z% D4 A3 z串口信息:+ c( o8 e, Z& m3 x, C: Z- L
Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-t|--systz] [-l|--localtime] [-u|--utc] [-f|--rtc FILE]
+ {( x; |) @' s% Y: yQuery and set hardware clock (RTC)
8 Y" q; k1 |" u& ^) J -r Show hardware clock time
; @/ R5 g. y7 O3 V" m `: r -s Set system time from hardware clock
* n8 V1 n- n$ v: w -w Set hardware clock from system time
- f% ~2 L8 [- F$ O+ ? -t Set in-kernel timezone, correct system time( T# `% B7 W+ ]% I' y7 S
if hardware clock is in local time, M/ t& s' a! }6 s- d# J5 y
-u Assume hardware clock is kept in UTC1 w( k- w" m$ U# a: Y
-l Assume hardware clock is kept in local time
3 {/ } U) H( ~' A6 J/ r. ^ -f FILE Use specified device (e.g. /dev/rtc2)
, p: f2 [& z! Y; x* m
* r. [( @' r& t3 t) t! B# hwclock -w3 L. ]1 h w4 L6 x) ]
hwclock -w —将系统时间设置到时钟芯片里面。如果没有这步,下次启动时,系统时间是不会更新的。
3 @# E2 O# B1 A8 \& P断电重启! ^5 G: O" V0 F7 k# _; g- c% e
#date
& \3 _4 W! k( h/ ^8 J5 h+ h查看时间是否保存。
+ A! M B- N8 y3 N# m, U. y7 D: ]5 z+ f: \' O
十、 4G模块测试注:4G模块是选配模块,如有需要,请联系飞凌销售。$ w$ w3 X8 n8 [4 e, l. J
准备一张移动4G SIM卡,4G ec20模块一个,将SIM卡插入4G模块卡槽中固定好,将天线接到主ipex天线座,开机上电。
1 e: Q) L- E; k& V1、 查看节点是否存在:
3 O! G7 e0 [! q+ L2 \6 ]* M[root@sun8i ~]# ls -la /dev/qcqmi0
9 F5 a1 B' g* a* J5 u存在qcqmi0节点,且识别usb0节点,则4g模块正确识别并加载。
2 b: Z# s( U; g; o2、 拨号:
* I# ~: x' C4 F3 E* ]0 Z#/usr/bin/quectel-CM &
5 K# ~7 C9 R" ~2 P; r! q/ J1 K- ^[01-01_00:33:08:257] wcdma<E_QConnectManager_Linux&Android_V1.1.34
8 s3 {( B- \, E[01-01_00:33:08:258] quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)+ |" m8 r0 H7 w5 t( ^5 B- q
[01-01_00:33:08:263] Find /sys/bus/usb/devices/1-1.3 idVendor=2c7c idProduct=0125' s3 [; s0 d- t5 }
[01-01_00:33:08:263] Find /sys/bus/usb/devices/1-1.3:1.4/net/usb0) I' s/ [, X# z' h
[01-01_00:33:08:263] Find usbnet_adapter = usb0/ Q% l9 V" u. J: C1 a+ B$ l
[01-01_00:33:08:264] Find /sys/bus/usb/devices/1-1.3:1.4/GobiQMI/qcqmi0
- o- c8 R1 L# N+ P# f[01-01_00:33:08:264] Find qmichannel = /dev/qcqmi08 ]# A1 E9 d1 D3 V) b
[01-01_00:33:08:288] Get clientWDS = 7" I1 H# s: I. O0 a
[01-01_00:33:08:320] Get clientDMS = 8# m0 _. U* k3 f+ `0 T
[01-01_00:33:08:351] Get clientNAS = 9) s. S1 \! g% \* U0 ^' y
[01-01_00:33:08:385] Get clientUIM = 10+ @" B" i0 U* B$ d8 f+ ~% I
[01-01_00:33:08:416] Get clientWDA = 11
/ g% t% {0 O# [- u[01-01_00:33:08:448] requestBaseBandVersion EC20CEHCR06A03M1G- v6 U8 V" Y5 m3 t P& I! \
[01-01_00:33:08:545] requestGetSIMStatus SIMStatus: SIM_READY6 D) | g2 @% X1 f. ^( f/ H
[01-01_00:33:08:576] requestGetProfile[1] ctnet///0
. J7 z, t9 r0 i D8 S[01-01_00:33:08:608] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE
F/ {0 w) J) _) Y/ N[01-01_00:33:08:640] requestQueryDataCall ipv4ConnectionStatus: DISCONNECTED* z: h7 Z8 T5 f( n! c' y
[01-01_00:33:08:704] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE" @! `7 v; ]/ m; g# z
[01-01_00:33:08:736] requestSetupDataCall WdsConnectionIPv4Handle: 0x86ad3a90
, v. b) Q2 _, m% {* Y1 u# p[01-01_00:33:08:832] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
+ Q( y# E: x) v# {+ S- y& Z1 ~[01-01_00:33:08:865] ifconfig usb0 up- H" p/ ?; @: v8 T9 z
[01-01_00:33:08:884] busybox udhcpc -f -n -q -t 5 -i usb09 b& M7 X9 T& k& Z( R
[01-01_00:33:08:898] udhcpc (v1.18.3) started
0 e x. O }1 O( z2 q: o[01-01_00:33:08:970] Sending discover...3 Q% ? J& q! }! B# S! s! {
[01-01_00:33:09:071] Sending select for 10.51.194.11...
$ H1 w2 i2 m$ C# C) Y( B[01-01_00:33:09:190] Lease of 10.51.194.11 obtained, lease time 7200. ? Z9 E4 d& [/ G$ [( q; y
[01-01_00:33:09:210] deleting routers
/ U) D8 r& F) j, c. broute: SIOCDELRT: No such process! \ `, a: A' I% J3 K/ A
[01-01_00:33:09:225] adding dns 222.222.222.222& @/ e" ~" {6 n% g( |3 O
[01-01_00:33:09:226] adding dns 222.222.202.202, X2 c: K A2 t" b/ e; k3 O
3、 测试网络通断& D8 ?* B2 u! |4 M
输入指令:
5 n3 X8 O) K& n" p# ifconfig eth0 down8 Q/ W2 n9 w7 m) d& N
#ping -c 3 www.baidu.com
" p+ ^$ E2 o$ s$ I2 w2 a5 J4 e调试串口输出如下信息:
2 b8 d* c+ f* Z- iping www.baidu.com -c 32 ~+ R7 P( i% x
PING www.baidu.com (220.181.38.149): 56 data bytes/ e; k* c* j7 m& y$ Q$ X( f/ B
64 bytes from 220.181.38.149: seq=0 ttl=51 time=44.181 ms
$ Q) v: o- E% D7 o64 bytes from 220.181.38.149: seq=1 ttl=51 time=58.372 ms" m4 H6 B+ F$ h& T
64 bytes from 220.181.38.149: seq=2 ttl=51 time=66.671 ms- y7 ?, |0 T$ A& @
. r/ Q. C# l: ]$ B: p' F6 i- _
--- www.baidu.com ping statistics --- V% t7 C: F3 j
3 packets transmitted, 3 packets received, 0% packet loss
# C/ T0 W2 i. P# A6 yround-trip min/avg/max = 44.181/56.408/66.671 ms
; Q. ]4 S4 f7 \. f) H. E F4、4G热点:
" B9 }* q7 }) V( j) Z, F- d1 }; X# /usr/bin/quectel-CM &" @2 y0 _8 N) Q/ h: s, d2 N3 _
#echo 1 > /proc/sys/net/ipv4/ip_forward5 R2 I1 i7 \8 ?# L& y
#iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
: x, z8 p4 B y#insmod /lib/modules/$(uname -r)/8723bu.ko
' M; J! o) o" q) @- Z& H% f#ifconfig wlan0 192.168.18.1' I6 p P% k$ a2 v
#udhcpd -f /etc/udhcpd.conf &
1 o, Y) z$ L+ h5 {& [. Q' ~% m#/usr/sbin/hostapd -d /etc/hostapd.conf &
; `5 i& ^4 n$ v* {( n6 c( r生成ssid为forlinx_a40i,密码为12345678的AP节点,手机连接forlinx_a40i,可连接外网。- Q- d2 |5 w, B$ ~% C
十一、 UART串口测试1. OKA40I-C开发板设置6个UART口,在开发板上分别为DEGUG(RS232)、UART2(TTL)、UART3(TTL)、UART4(TTL)、UART5(rs485)、UART7(TTL),其中UART0作为Debug使用,与板载232接口功能一样。UART2、 UART3作为五线串口使用。UART4、UART7用作普通串口引出。UART5用作RS485。
4 x" i9 \ j3 F% }" E2.把飞凌的TTL转RS232模块接到开发板UART2(ttyS2)或者UART3(ttyS3)上,串口线连接到RS232设备,连接好硬件后开发板上电。
0 `7 j- h9 F' i1 r3.以UART3为例,终端中输入如下命令,tty_test启动后会不断的向外发送“abcdefg”。将收发短接进行测试。UART2口类似,修改为对应设备号即可。
# [# z: S$ g4 A% W# uart /dev/ttyS3 9600
# [0 R q$ g, R& F+ h% I4 E: |$ e/ O. d( t9 K
Welcome to TTYtest! Press Ctrl + 'c' to stop.+ P5 B( j( O; o( c
, L9 g' r0 b, f1 y6 P
/dev/ttyS3,creat thread 3068421232 sucess: ^9 z# U) I; C' U1 y4 N3 ~
/dev/ttyS3,creat thread 3060032624 sucess
, h& C. f" m; [) xsendTotal= 9 num = 1 send = abcdefgh
4 W; e0 H2 \! wrecvTotal= 8 num = 1 recv = abcdefgh
1 z$ G7 k" o0 K6 B0 vhex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
1 v$ y5 |$ G" `, U# esendTotal= 18 num = 2 send = abcdefgh- \) t7 n6 X6 P7 I
recvTotal= 16 num = 2 recv = abcdefgh) C5 O' A( a! }* I6 P
hex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
* X3 j* F- W& b: bsendTotal= 27 num = 3 send = abcdefgh" t+ T- z {) g. S' v& _- V
recvTotal= 24 num = 3 recv = abcdefgh
2 l! _2 W9 q m9 ?& a O9 u$ O# xhex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
+ q( C& Q* s J' c
1 l6 H: e S3 a6 _0 f( B6 `/dev/ttyS3,Send: 3 ,Receive: 35 D D W B: H7 s5 [
十二、 RS485测试默认UART5用作RS485功能,对应节点为/dev/ttyS5。采用RS485转232模块,与电脑相连。" K0 T% n% F1 d+ M1 @9 O# k
终端中输入如下命令,tty_test启动后会不断的向外发送“abcdefg”。
|: }) a! l' N9 R7 O#uart /dev/ttyS5 9600
5 g9 w1 }$ q) w; b8 A( k$ p电脑端串口助手(在用户资料\工具\串口助手中),发送abcdefg后,接收到RS485发送过来的abcdefg。
' ]* ^2 m- Z& `% y! r 0 D) u' n+ A! X5 m. V% v: ^, A) d# V
十三、 数据库测试打开数据库,输入sqlite3,如下:" H8 c9 K/ E0 O5 H
#sqlite3( H. v- ^% M' T9 r5 A
SQLite version 3.15.0 2016-10-14 10:20:300 `% j' q$ n# O! `! Y
Enter ".help" for usage hints.) p8 F5 N! m3 G5 C; L6 x4 R
Connected to a transient in-memory database.
) m8 a% j+ A2 g1 W4 eUse ".open FILENAME" to reopen on a persistent database.
6 `' |3 p2 ^! t Ysqlite> create table tbl1 (one varchar(10), two smallint); //创建数据库tbl1 j4 y' |4 }0 c) R& J* p* ~
sqlite> insert into tbl1 values('hello!',10);//数据库中插入hello!|104 _. o% s b& _# ^; W: ^0 P- Y; e$ b
sqlite> insert into tbl1 values('goodbye', 20);//数据库中插入goodbye|20) h& r5 z" E4 \
sqlite> select * from tbl1; //读取数据库tbl1中所有内容如下
! H: W5 D% m& C* s+ ]1 ?: Bhello!|10. D* I9 R& |" x9 ]5 }4 D
goodbye|20$ R: ?: B' {# |5 \, h1 m' Q
sqlite> .quit //退出
: _& \. e& X3 R5 n) `十四、 SPI测试默认支持1路SPI片选,分别对应节点为/dev/spidev2.0。8 H. B6 O. g& |1 ? N7 E9 l
短接MOSI与MISO,对应SPI串口的8,10引脚:
/ Z* s) i$ A& X/ x* V3 x" E# /usr/bin/spi -D /dev/spidev2.07 c, f5 c0 [9 M. G1 [
spi mode: 0; ~' t# h8 Y' V1 y- t
bits per word: 8* F+ W7 U ~& p; o1 r+ O5 q* S
max speed: 500000 Hz (500 KHz)
, \; V& i3 M P) d+ d3 P; @& _# J( f n
FF FF FF FF FF FF/ {1 \* r, G5 F4 v% }6 ` n2 M
40 00 00 00 00 95
+ Q4 b: a4 l' i' g2 Q1 |6 }& [2 aFF FF FF FF FF FF; p0 Y' w2 X1 w: q4 G# D
FF FF FF FF FF FF
/ y2 X# h* P/ d% m+ ~" @, GFF FF FF FF FF FF
- n& T0 \' Q- f) ]( z+ DDE AD BE EF BA AD2 @0 k' x2 d+ {- _* U
F0 0D& y5 i3 l9 i: m( ~6 T. Q
十五、 按键测试# keytest' K7 {, W' C5 Y$ }, G5 p) R1 W
Input driver version is 1.0.1" @* @. L5 e m" q8 ]- o5 L- m& f9 r
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100. O* s' S$ y# X8 x" m8 X
Input device name: "sunxi-keyboard"3 |7 z% q- J1 t' J) G
Supported events:
6 M/ T) O7 C" B Event type 0 (Sync)+ \, `4 g; R" l2 s
Event type 1 (Key)
* k: j" O( y0 t% V' @ Event code 28 (K5)0 k2 f% M9 J8 B8 T' f: c. \( a; p7 W" N
Event code 102 (Home)! ^: }4 _" o& t0 D' ]
Event code 114 (K1)' f$ J- j/ Y8 J7 I H0 ]+ z/ P4 n4 I
Event code 115 (VolumeUp)# b: \' ^2 e3 x$ ?& o$ r" O0 | N1 D
Event code 139 (K2)
& \- [+ o+ ^2 I; K6 {1 vKey, K5(102, 01)//K5按下
( A3 [4 N! q# M7 tKey, K5(102, 00)//K5抬起; y: q! t! L1 W; L' Y9 k
0 s/ ~& D7 T9 h. CKey, K2(28, 01)//K2按下
' X( Z- ^1 \1 x; p" pKey, K2(28, 00) //K2抬起
9 u2 n3 l' Y& B2 o- c4 `( `/ C/ ^7 a! r/ V/ b/ `+ k3 u
Key, K1(114, 01) //K1按下
$ q3 ]. W4 P. W2 ^* EKey, K1(114, 00) //K1抬起: _& f m( J/ }8 I
十六、 显示测试Lcd显示目前支持飞凌并行24bit 1024x600,飞凌lvds接口1280x800显示电容触摸一体屏,支持hdmi1080p@60Hz,Tvout显示输出。* v+ H5 Q! C4 l- c5 M9 w ^* ^7 Y
1、背光测试
' S4 ~$ I3 t# h9 [! o0 ]" V: }查看触摸驱动是否存在,如果不存在的话就加入驱动模块到系统
) s6 f5 d) _9 E' _% d# lsmod* Z/ v; K5 a1 y- ^0 q6 N" c& A7 Y
mali 278345 0 - Live 0xbf010000 (O)
% @) j/ w4 m. \: a% G9 ?4 Jgt9xxnew_ts 44460 0 - Live 0xbf000000
. |7 s2 Z9 I" ]" ]( m# ?1.导出qt和tslib环境变量; ?* N: L; ^" w* D& p \
# source /qt5.9.sh% k, R5 [6 _9 P$ W/ q9 s5 \9 n
2. 背光调节
2 {8 q, i0 v) z) @, s; z#ps
" ~4 B& |; X$ P# _" }1312 root /Launcher
- l( V0 g0 `" [" G1313 root /MediaUI5 P& l5 [( s9 }: Q4 T X( K
1314 root /CameraUI
( d9 X; I# b6 `% E5 P将上述3个进程kill。
2 A$ u; E b. \( r- C# kill -9 1312 1313 13147 ?! e8 R: u S r. }6 j6 a
#fbinit 03 o9 d$ O' y- o! r0 \2 f; _- A
#fbinit 11 X$ T4 a; c9 h% ~
#fbinit 2 {' m$ U: \$ X8 p3 I1 H
# backlight_gui
% ?" E# }# L) V P# s# }滑动进度条,调节背光亮灭。' }% C. S( y6 C1 ]
0 n- c0 Y: n: B: E( r
2、触摸测试
* z5 t( c2 Z* e. v, L6 h" u注意:3 S4 ]' q- k) x" @: {. z+ b# C
开发板默认支持ft5xxx和gt9xx两种触摸驱动;可通过命令行调用脚本方式切换两种触摸;执行脚本切换后要重启开发板。( V1 Y1 r2 C8 w' ^
ts_module_ft5xxx.sh 调用ft5xxx驱动;
8 S) w: ~6 h0 n; Gts _module_gt9xx.sh 调用gt9xx驱动。
$ _9 e( w3 {6 `9 M查看触摸驱动是否存在,如果不存在的话就加入驱动模块到系统。
8 S5 F6 R, Q9 w9 M* i6 b9 [. f, E# lsmod/ X$ l6 d; m3 R; y/ {
mali 278345 0 - Live 0xbf010000 (O)
- ^+ b3 ?/ D4 Z1 ^! q B* ngt9xxnew_ts 44460 0 - Live 0xbf000000
* U% y" F8 X5 e2 i9 ?% d/ w/ e1.导出qt和tslib环境变量
8 |# b" k: H; n8 p$ R# source /qt5.9.sh' n: Y0 _+ H% l+ [$ S: L8 N
2. Tslib测试程序测试触摸
6 p9 h% Y+ o! i#ts_print
0 i# k" _& b. v8 Z$ d& g1434592025.966377: 560 446 255
( ~! f4 }' x3 G5 n9 J/ M1434592025.976749: 560 446 0
# j/ p& O& R, O8 z+ ]触摸任意一点,查看上报坐标值,是否正确。
2 w5 ?1 |. M$ L; c/ a' H原文链接:https://www.forlinx.com/article_view_576.html7 S6 d! u" a4 i: Q/ v
|
|