找回密码
 注册
关于网站域名变更的通知
查看: 1066|回复: 2
打印 上一主题 下一主题

全志A40i T3开发板外扩接口的功能测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-19 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
A40i T3 开发板功能测试
5 T; u- d% ]# O9 C% t, G硬件平台:飞凌嵌入式OKA40i-C/OKT3-C开发板, 基于国产芯片 A40i(工业级)  T3(车规级)设计研发。
* v( l  Z$ X2 W2 b此章节主要说明A40i T3开发板外扩接口的使用方法。本章节测试所用到的测试程序在飞凌提供的Demo中已有集成,故不做文件来源说明,直接进行命令操作。所有命令均以#标识,请客户使用前将#去除再进行输入。
0 E, N* O: C5 l# b一、  WIFI测试RTL8723bu—USB WIFI、SDIO-WIFI 8189ES使用方法如下。
5 s7 p$ |5 J( V/ a$ |. |: m1、  板载WIFI的使用
8 H0 I4 K2 M, O9 q6 o" S& g. ]如果开发板有板载的WIFI无线局域网卡,则焊接评估板如图所示位置:
0 u$ F9 q, P" m+ ]. W( _* a
! h' Z* x& S: C$ O3 P1 E( v* `
: i0 X$ W3 e8 x5 e; ]步骤1:检查开发板是否已经焊接该模块,正确焊接如上图。连接上天线。' O2 P8 q- d9 j3 \. o
步骤2:开发板上电,启动Linux系统。手动加载模块:
4 l8 a2 ?: b$ L8 {( f& r#insmod /lib/modules/$(uname -r)/8723bu.ko
, u, p* B' @1 x1 I, l查看模块是否加载:
( W- K; e9 U. Z0 W! c- E#lsmod
+ t. f; H9 d' A: \9 d& T8723bu 1920908 0 - Live 0xbf19a000
4 V( N+ ^+ X! R( `/ s  N4 A& u) l步骤3:自动分配IP
! _1 F1 }! `% R# V#wifi.sh   -i 8723 -s ciscosbwifi -p abcdefghijklmn" a+ G& S- r* U5 o2 \( N$ q
其中-i:8189或者8723,-s:wifi ssid,-p:wifi password或者NONE
2 k" D2 R* ^, E
wifi 8723
+ x; J6 l' R7 Pssid ciscosbwifi
0 j2 i; z1 b* E9 i$ xpasw abcdefghijklmn
; I6 O+ I9 }9 F5 T9 b' l' j4 k" hSuccessfully initialized wpa_supplicant
+ G7 p6 E1 i3 t! J+ `$ bRFkill: Cannot open RFKILL control device
; W4 }6 M, K, x3 w& x* g! qwlan0: Trying to associate with bc:67:1c:41:2e:3c (SSID='ciscosbwifi' freq=2437 MHz)7 U( W$ K2 l' m6 n) r
wlan0: Associated with bc:67:1c:41:2e:3c
, b1 S0 T$ X4 u  mwlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0: r7 o% p1 S- U3 `
wlan0: WPA: Key negotiation completed with bc:67:1c:41:2e:3c [PTK=CCMP GTK=CCMP]8 A4 Q7 L: c: A
wlan0: CTRL-EVENT-CONNECTED - Connection to bc:67:1c:41:2e:3c completed [id=0 id_str=]
+ y* u+ i7 M2 J/ u0 tudhcpc: started, v1.25.16 J- a! J( u. x) }
udhcpc: sending discover
' b5 q& f+ w4 h, T% \' @, V2 `) l' Yudhcpc: sending select for 192.168.1.131  u* o8 C, ]6 }* Y6 u# Z
udhcpc: lease of 192.168.1.131 obtained, lease time 86400
0 B. H3 {. S2 U2 C" r: `deleting routers. n4 n8 ~' }1 p( v0 G/ L
adding dns 222.222.202.2021 o+ P5 u5 [8 q4 D; k! }2 n) ?
adding dns 222.222.222.2224 G5 m. b& H! S4 X
Finshed!
8 o' N5 f4 C; i- [9 b

/ \5 B+ n9 r; l$ O! b5 U& f步骤4:ping ip或者域名,命令如下。5 W2 A, g+ _. o5 |6 j$ s. ~2 L
#ifconfig eth0 down5 `) P9 _: O  R1 m* Q0 i6 W1 ]
#ping  www.forlinx.com
; u+ Q- q, j: |# m+ h' U步骤5:卸载已经加入内核的模块。
" [4 q  f  v6 v7 l; C#rmmod 8723bu& ?) }# o3 |6 S5 K3 ~+ h
注意卸载模块前,请将wpa_supplicant与udhcpc -i wlan0进程kill。否则会加载一些信息。
3 f4 n" K4 b& I- d; d' j. x注:本小节中是一个WIFI连接路由的示例。由于网络环境的不同,所以在您做本实验时,请根据实际情况进行设置。
( I/ D! Q0 U% a5 p1 o2、  SDIO-WIFI RTL8189的使用% L0 B$ l. s5 R- s
步骤1:插入模块,开发板上电。
  r1 r+ a9 ?4 [& S步骤2:手动加载模块
+ l! D6 d. X+ h5 `, V7 A3 C#insmod /lib/modules/$(uname -r)/8189es.ko
) e8 h* V( ?; @* r/ P步骤3:自动分配IP, T5 T; [$ X+ |$ ^4 R5 b- O- `
#/usr/sbin/wifi.sh  -i 8189 -s ciscosbwifi -p abcdefghijklmn, a  P4 J& a* g* C6 R# H
其中-i:8189或者8723,-s:wifi ssid,-p:wifi password或者NONE* X% i3 Y: I! h  E7 M
[  540.748544] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready# Z$ b9 x' z# d4 j! W+ g
udhcpc (v1.18.3) started: o) Z; S  F: }& `8 V- `0 g
Sending discover...9 l, P  N7 v  ^6 v  R4 k, V$ }- e
[  542.214046] RTL871X: rtw_set_802_11_connect(wlan0)  fw_state=0x00000008
! x9 A8 x4 g) J[  542.240264] RTL871X: start auth
! g- ~) R; H1 I% \[  542.260150] RTL871X: auth success, start assoc
4 N  H3 V- }; B2 K2 L) ?7 M[  542.280348] RTL871X: assoc success/ S! G  J. ~: @7 c" T- O1 H
[  542.284224] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
' D1 w/ U4 g5 J; A[  542.294711] RTL871X: send eapol packet* l7 [, V6 `" E
[  542.310877] RTL871X: send eapol packet
. ]2 `/ d  H% K# W) _[  542.315351] RTL871X: set pairwise key camid:4, addr:bc:67:1c:41:2e:3c, kid:0, type:AES
9 Q- R* g8 y$ ]1 V4 P[  542.324851] RTL871X: set group key camid:5, addr:bc:67:1c:41:2e:3c, kid:1, type:AES1 C) l: \! E; R7 n) X
Sending discover..." i- V( P2 C4 k. j
Sending select for 192.168.1.127...
' J0 Y/ ]" X+ W$ P2 w. r( \Lease of 192.168.1.127 obtained, lease time 86400. o% S; g$ D! N, N5 b  s) B
deleting routers# O: }8 l: ?* E
route: SIOCDELRT: No such process
$ M9 V, D8 x7 ]5 ladding dns 222.222.202.202
$ t2 q6 K! L" K) oadding dns 222.222.222.2225 t, Q. @: W( L( G. Z) u- W) L

/ A3 H: w8 z( S6 A) w- c; D步骤4:ping ip或者域名,命令如下。
3 J  c1 Q6 c8 O' A% y) H5 ?' i5 x2 F#ifconfig eth0 down- P2 v& R% c: w1 ~$ e* k( b
#ping  www.forlinx.com( q4 M! c% Z0 ]" i- J0 l7 S6 @- O
步骤5:卸载已经加入内核的模块。
, s! S- f" s" i  i#rmmod 8189es& N4 p0 D+ a9 {7 ^' u  ?6 N2 d5 d
注意卸载模块前,请将wpa_supplicant与udhcpc -i wlan0进程kill。否则会加载一些信息。# ^0 R, S) ~4 b8 r2 W% V5 ?+ P
注:本小节中是一个WIFI连接路由的示例。由于网络环境的不同,所以在您做本实验时,请根据实际情况进行设置。
5 q. Z( p6 J# d2 o2 L- K3、  热点测试  b; ^( U" }; D) R; P/ F# _; I
WiFi热点:
/ @; R  K2 T7 H) e0 L( V#insmod /lib/modules/$(uname -r)/8723bu.ko
9 u0 c  Q  O" w5 k( e* `#/usr/sbin/wifiap.sh; A' q+ M3 T1 t/ ?* t, p/ o
生成ssid为forlinx_a40i,密码为12345678的AP节点,手机连接forlinx_a40i,可连接外网。
( C2 t- n/ o4 d注意:有线网卡要连接一个有开启dhcp服务的网络路由器,并且可以访问互联网。
! z- D$ z: F0 p. @# t二、  SDHC/TF卡驱动测试开发板支持SD或TF卡热插拔。插上SD或者TF卡后系统自动将其挂载到/mnt/sdcard/mmcblk1p1目录下,移除时,将sd卡或TF卡卸载。! Q  M, [* C! d
查看SD卡中的文件,命令如下:/ d9 u- C+ F8 U4 l: r5 f5 i4 L2 C
# ls -la /mnt/sdcard/mmcblk1p1/4 f- H' q, s$ r
total 5
1 |9 U  B# n: Tdrw-rw-rw-    2 root     root          4096 Jan  1 00:00 .
. h* a1 w; ]5 M+ Z5 K! fdrwxrwxrwx    4 root     root          1024 Jan  1 00:30 ..
- @5 x1 Z8 s, p" M-rw-rw-rw-    1 root     root             0 Jul  5  2019 sdcard.txt% W& e+ g' s. f( Q* u; T6 Y- ]
往 SD 卡中写入文件,命令如下,写1到test.txt 文件中:
: P6 s- F! ]. ?1 t) R: G8 B# echo 1 > /mnt/sdcard/mmcblk1p1/test.txt. T& P! V7 b. [7 |
# sync
% k7 p+ X  E7 Y! h! U1 j) t& ?- }读取 SD 卡中test.txt 文件,命令如下:9 O# k: w7 M- S* q2 T1 H. P
# cat /mnt/sdcard/mmcblk1p1/test.txt
0 s' F* ?% S/ _# z18 O1 U# h% x( h) ^' D$ @
会读到刚才我们写入的1。" v  u7 e9 j5 H2 b( s$ Y4 ?
注意:同时插入sd卡与tf卡时,只挂载第一个插入的卡,挂载另一个卡,可使用mount命令挂载。! \, O6 O# ~3 }* q& `3 |
三、  USB接口测试1、  USB Host接口存储测试
) w8 ~# E& }* n$ A0 i8 r这里用挂载U盘为例进行演示,目前U盘测试支持到32G,32G以上并未测试。U盘与开发板物理连接如图:
& m5 i7 \# {6 b% P% S+ @
% ~& X( n4 e2 x+ {同时终端会打印关于U盘的信息,由于存在很多种U盘,显示的信息可能会有差别。
" P! K6 H  o" k4 h1 F; N6 ?6 p步骤1:连接USB 接口u盘到USB host接口,会自动挂载到/mnt/usb/sdx1目录下。8 ]: h$ C- f% K
步骤2:查看usb存储设备2 j% d$ B; x+ b2 Y9 X
# ls -l /mnt/usb/
9 |% c7 Y  |& Q) F$ E6 P4 j) H( stotal 21
: I+ @0 ?# i1 t& S& C5 _9 A+ _drwxrwxrwx    7 root     root         16384 Jan  1 00:00 sda1
1 Z& q3 V& Z' g7 x: odrwxr-xr-x    2 root     root          1024 Jan  1 00:38 sda4
, n5 B6 I& w- K  Tdrwxrwxrwx    2 root     root          4096 Jan  1 00:00 sdb11 C% c! b2 E0 w
# ls -la /mnt/usb/sdb1// p5 ]" `' F( Z* \* j, m
total 5
' C, Q7 C  r0 q$ t  R+ \drwxrwxrwx    2 root     root          4096 Jan  1 00:41 .7 }$ U6 o" K" l2 [
drwxrwxrwx    5 root     root          1024 Jan  1 00:38 ..
3 s. r* r3 }$ ~7 v9 e-rwxrwxrwx    1 root     root             0 Jul  5  2019 sdcard.txt7 y3 Y7 U, A1 O2 ^, `1 m7 {
步骤3:往U盘中写入文件
$ a& _; Z& M" f6 l7 v#echo 1 > /mnt/usb/sdb1/test.txt  //写1到test.txt 文件1 F" O+ P3 \* H  r: ?5 A2 L
#sync   //将内容从内存同步到U盘中# a* d: x. Z! Q
步骤4:读取U盘中内容+ w2 R% u' c3 R% m& ]
#cat /mnt/usb/sdb1/test.txt
! w9 v5 D4 R5 }' [9 x0 P* t' [! |18 }  |  D; _( Y* X% X; E
会读到刚才我们写入的1。0 Z8 m. Y5 X) X5 b& i
2、  OTG转Host测试
9 ?: \, u" [7 E3 G" J" M9 y8 X使用otg转host线连接到otg口,插入u盘能读取u盘内容。将U盘挂载到/mnt/usb/sdx1目录下。操作同U盘操作。% a  u& n! A  z4 \( i
# u2 A1 z# \- h2 [
3、  OTG默认成Host端口功能
! t6 i! a  ?" A, S修改/adb.sh- J8 {, x. D3 ]+ E) Y
#kill -9 $(pidof adb-service)* L. D0 `9 K: ~) s
#mkdir -p /system
1 z7 a4 n3 H1 ^" }#ln -s /bin /system/bin
9 Q$ x* M. Y- y% f4 vcat  /sys/bus/platform/devices/usbc0.2/usb_host; Q- |7 D/ \, Y
#echo 0 > /sys/class/android_usb/android0/enable
! E- M; ]* c$ m# J; g) V/ S#echo 1f3a > /sys/class/android_usb/android0/idVendor
1 w3 S# q* y: T: R, T& V#echo 1002 > /sys/class/android_usb/android0/idProduct$ v4 S7 C0 e# M' Y$ G; s% U+ I
#echo "mass_storage,adb" > /sys/class/android_usb/android0/functions8 B# U$ v5 q. U4 F7 U
#echo 1 > /sys/class/android_usb/android0/enable
3 H( g2 G. O  m% m* b#. /qt5.9.sh+ W: C, X) p  Q+ ?/ M
#/bin/adb-service &
0 n4 M5 y3 ^1 A5 j* o3 u4、  USB转4串口7 H" a( C6 d0 e" Q( _& l3 f
插上usb转串口到开发板的usb host端口% C& Q4 w. X, E; E: K
可选:生成和板子usb host丝印号相关的串口名字( p/ ?) J; R2 W, ?/ R4 a8 u6 \8 P
#  create_xr_usb_serial.sh
" _+ Q1 y# P+ j/ @0 y! ~6 v9 ]说明:usb转4串口生成的名字默认是/dev/ttyXRUSB*;
, R& B) O$ F& U9 x. x! c  B5 R( Z8 a/ x6 v! Z( _3 W% D
四、  以太网驱动测试网络相关配置声明:
3 L0 j: y. z  [每个开发板的网络使用环境未必相同,本节测试示例中,网络环境如下。实际使用中,请按照实际网络环境自行进行配置。
8 J1 A- c2 b5 z0 oOKA40i有eth0 网卡。开机已设置默认eth0的IP地址为192.168.0.232。如果修改默认IP请修改/etc/init.d/auto_config_network。
6 _- O: v: i4 y& H  c1 @: D# R: g下面以eth0为例进行命令说明。
  K% j* {. X2 o9 @2 @' G6 S1、手动配置eth0* F. T! b" ^1 d  [1 B
01. 在Linux系统下,使用ifconfig命令可以显示或配置网络设备,其常用的组合命令格式如下:% `8 y( W' F2 E5 S# {; A, f# i
#ifconfig 网络端口 IP地址 hw<HW> ether MAC地址 netmask 掩码地址 broadcast 广播地址 [up|down]- f! _# X8 a' v* ~: }
02. 设置IP地址
8 K3 M7 w1 E( h! C: j  Z3 Y# ifconfig  eth0  192.168.1.120(将eth0设置IP为192.168.1.120)
% L% z$ a7 C2 k% c* w" A# ifconfig  eth0             (查看当前网络状况)
& e4 K) n+ H0 Y$ q6 E! C8 X- V03. 修改mac地址
0 b" S1 O2 v* A+ D# k( s4 ^6 Hi.先关闭网卡设备' N  y2 B- k4 x9 L) j2 N# N3 R
#ifconfig eth0 down. u. R- e" G4 v/ s: E& `; c9 ]2 K
ii.修改MAC: k+ L5 ^0 n) U: `7 `! w9 t: ], x
# ifconfig eth0 hw ether 36:C9:E3:F1:B8:05  
# [6 Y; Y2 p  r+ S, p& Y+ u4 H
9 u: w- i6 [- U/ f4 ~iii.重新打开网卡
5 `. K' K2 ~1 G. t+ k1 x#ifconfig eth0 up& N7 U5 l. M% x* A0 ?- n9 T
04. 设置子网掩码
1 @. K, ?4 v0 L( o#ifconfig eth0 netmask 255.255.255.0
. x. `- T; S) u* v' E" m* H  n1 Z: p. |. ]' B5 L2 G; V7 j
05. 设置广播地址% u/ l$ ?% P5 I; [& `
#ifconfig eth0 broadcast 192.168.0.255
$ O" k: r+ o0 u. b
" p4 j/ a8 y6 n3 l; K- x06. 添加/删除默认网关: H# k( `# j2 r2 s
添加默认网关:: I$ `6 h- r% Y: x$ I% c1 N
#route add default gw 192.168.0.1
& X* I: j  p8 u! ^4 L# w删除默认网关:
6 x; Q$ T& g- j. l! K0 Z& C+ r/ E#route del default gw 192.168.0.18 g+ `* p4 ~9 c! F+ e
07. 关闭开启网卡) c4 [0 z$ G0 L& |9 L# @2 q# C& E
关闭eth0网卡2 \; c  ^( [7 x9 e  O' P
#ifconfig eth0 down* P) |8 E0 f: }! [8 g* Q
开启eth0网卡4 }1 b. M5 Q% _. }5 \7 w  G. C9 o; ^
#ifconfig eth0 up
  y( K* C7 @- c, J2 s08. ethtool查看网络信息# w+ f. s- r7 b$ H
# ethtool  eth0
3 z. w; a% C7 E* hSettings for eth0:& A5 n) p5 O$ U% ?
        Supported ports: [ TP MII ]
7 ?+ |* m, l9 H3 Z# A        Supported link modes:   10baseT/Half 10baseT/Full
3 e' g: X' E5 I" t1 e8 ~) `3 d7 T                                100baseT/Half 100baseT/Full# H$ t% Q/ t- M' |. Q! ]" d
        Supports auto-negotiation: Yes
7 Y# N4 n- m$ D        Advertised link modes:  10baseT/Half 10baseT/Full8 Z! K% C6 F9 H7 x1 F; K
                                100baseT/Half 100baseT/Full, m8 ]/ S( n* P+ z4 D8 [; K; M
        Advertised pause frame use: No
/ [2 q% a3 e& {) l        Advertised auto-negotiation: Yes
0 `9 d  z; D3 T1 ~1 M        Speed: 100Mb/s
  v$ ~1 K2 p* ~" Y( H7 U+ N: S        Duplex: Full% K$ F2 V. A* t
        Port: MII6 \8 D4 P. d* r0 H
        PHYAD: 1% v& x% C/ `' e2 b
        Transceiver: external
, f) ^% {' K2 y1 K! H1 a        Auto-negotiation: on
/ a# s0 s: W) Y# D        Link detected: yes
( v, Y3 b1 v7 }# F& a2、动态设置IP地址
& P" V# T' D$ l9 j$ P9 ~如果您的开发板与路由器连接,且路由器支持DHCP自动IP地址分配可以在超级终端里面输入命令:
  G5 e( S+ [5 O$ ], S. o) @#udhcpc  -i  eth0# L7 I3 `2 I1 g! [
用来动态获取IP地址,“-i” 参数用来指定网卡名称,飞凌开发板有线网络的网卡名称为eth0。
. ^0 C: w) ]& u' e- e& j2 I) _/etc/resolv.conf文件中有dns服务器信息会被自动添加。
" L; Y# x3 Q* F; o五、 以太网相关服务以太网相关服务测试之前,确保已经设置好IP。设置IP请参考以太网驱动测试部分。
6 W) S0 u; y4 l$ W7 G1、 Telnet服务* ?( q/ H% h% y: R/ `
OKA40i-C开发板已经启动了telnet服务,设置好IP地址后就可以作为一台telnet服务器了。
  @) C9 P, d9 h查看是否启动可以输入命令:( [# p# l0 i6 K* R. Z4 v$ h5 @
#netstat -al( a3 S2 n* S* J  a
例如,开发板IP地址为192.168.0.232,在Windows的命令窗口下输入telnet 192.168.0.232 ,用户名输入root,密码为root(具体根据自己的设置)(开始->运行,输入cmd回车,即可进入Windows的命令窗口)- b5 O. b+ `* f2 @* D% X
之后就输入Ctrl +C终止服务加载。! _/ p+ z; a$ b( _2 U4 L5 [
$ g2 `- `; k' g0 W: |
2、 sshd服务
) o* y% v9 q9 p5 w/ m. m4 R9 k3 iOKA40i-C开发板在/etc/init.d/rcS 脚本文件中已经启动了ssh服务,设置好IP地址后就可以作为一台sshd  sftp-server 服务器了。9 O* P1 Z9 k. t. I1 D
测试前,设置root的密码比如为123,同时修改sshd的配置文件/etc/ssh/sshd_config,允许root登录。将#PermitRootLogin prohibit-password 修改为PermitRootLogin yes,保存退出之后,重启,需要将开发板设置为当前UTC时间。并且用户名和密码不能写成一样。
2 s6 c1 p$ Y5 n1 v6 C$ V) H查看是否启动可以输入命令:
( T% a2 v$ P- P# _* W$ [$ O7 p#netstat -al" d( C8 k1 ^9 p  e- O
例如,开发板IP地址为192.168.0.232,在Windows打开putty, 192.168.0.232,输入用户名root,密码123,如下图;
$ v8 W9 d4 a1 z8 @2 t/ A1 g5 Y
登录后如下图;- w( y. _6 B+ \2 M/ D* _9 d5 v

( ^* n4 n) a; p& K9 J: X/ _# ~sftp-server文件服务
: e' R3 h1 U0 a- J0 V开发板IP地址为192.168.0.232,在Windows打开WinScp, 192.168.0.232 ,用户名输入root,root,如下图;
/ ]8 O4 Q" K& Z# s- q. G* d( ]* w8 U$ C( p
登录成功后的界面如下图
, o$ C1 u0 `) H; [" G, g$ T% ]1 v' r7 n4 ^" H. ?
注意:出现登录成功后界面之前需要等待一段时间;, G6 ?6 `5 g; W  ^! e
3、 Web服务" [- P  I$ b3 F. }
我们在开发板上移植了一个webserver:boa;' ~# g/ @4 i# ^9 O& u
boa webserver是一个小巧高效的web服务器,可运行在Unix或Linux平台,支持CGI,源代码开放;是一个非常适合于嵌入式系统的单任务http服务器。9 K" K' \3 S7 M$ Z% q* \
如果系统没有默认IP,临时使用ifconfig配置。9 B7 x# f  Z1 p! P6 B8 ?
系统启动时已经自动启动了boa服务,在IE中输入开发板的IP地址即可浏览开发板webserver中的网页。下图是在IE中浏览的截图:
7 i$ Y7 P$ I1 A  Y
1 r. b8 ^& S, t. `2 t4、 VSFTP
: s9 Y, t* [8 c3 {3 M* c开发板作为服务器
- N+ E. N  B) X9 ?$ }4 [; T系统启动时已经自动启动了ftp服务,可在电脑上用ftp软件访问,用户名root,密码root(测试前,需先使用passwd命令设置密码,这里设置为root);' w  T, m* e& q. w8 G7 _5 l4 F( t
下图是在PC机上用ftp://192.168.0.232访问ftp 的截图:. |& G5 j+ D' e! a' a3 Y0 T4 r
# ]& S- _- d6 O, H3 X& G
' q3 p/ b6 p2 y! g' V& H# t
开发板作为客户端5 H, M+ C& o* [$ H
假设ftp服务器的IP地址为192.168.0.72,采用ftp命令传输下载文件,可以使用如下命令。
8 J& q/ k; \9 rftpput -u root -p root 192.168.0.72  test.mp4  test.mp4使用此命令将开发板文件传输到ftp服务器。
) h( N. e; m4 U& ^+ vftpget -u root -p root 192.168.0.72  test.mp4  test.mp4 使用此命令将服务器端文件下载到开发板% r  S, `2 M7 Z. D9 C

: ?6 m; H+ T, ^, A8 x2 Z0 ~* q) [六、  看门狗测试看门狗是嵌入式系统中经常用到的功能。看门狗驱动指定系统最大为16s倒计时重启。为了防止系统复位,可在计数的16s内向watchdog写入清零命令,重新计数。
7 h9 R5 a% X* `* j1 P1.执行10s复位命令:% A& b7 T* j3 D$ k5 M) V/ z7 G
#/usr/bin/watchdog  /dev/watchdog settimeout 10 &1 E  g& B1 Q1 p; q# C' l
10s后系统重启。
- ^3 M3 D: C" ]& W% a2.周期喂狗
+ B# W& ?" F: m% X#/usr/bin/watchdog  /dev/watchdog keepalive 10 &# P- I6 i$ M" @, U4 u1 j* k6 c) Z/ j- Z
一直循环喂狗,系统不重启。10表示10s喂狗
9 |: ^3 b, |1 o$ B8 c" a4 h! n七、  放/录音测试用户可以使用文件系统内带的ALSA音频录制、播放、配置工具进行测试。% a5 B* f( P. l! v
1.耳机放音测试
7 Q/ E1 N* p2 t/ `3 v如果耳机与喇叭同时打开时,默认从喇叭输出。需拔出喇叭。
0 E* W7 n' r! R0 Y* R' R6 b#aplay -Dhw:0,0  /root/wo.wav                 播放音频文件
( [5 }, S: ]! v5 i串口信息:: C" u2 }3 H, [) Y5 F
Playing WAVE '/usr/bin/Rear_Center.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
- O( h! X, m/ r% L+ t$ S1. speaker放音测试7 O, p7 f" c: A' V, P1 @# E
#amixer cset numid=15,iface=MIXER,name='Phone Out Mixer LOMIX Switch' on
6 S6 B& m' \( s, B#amixer cset numid=16,iface=MIXER,name='Phone Out Mixer ROMIX Switch' on
! f+ ^) U. `! M) M, w#amixer cset numid=48,iface=MIXER,name='Phoneout Speaker Switch' on
: Y: W8 t" p8 G! R0 O* E#amixer cset numid=2,iface=MIXER,name='digital volume' 50  /*设置音量*/$ v. S" T: @8 B/ n% F" E
播放音频文件:
! n* {! u; t. |; e- {#aplay -Dhw:0,0 /root/wo.wav               播放音频文件
( y9 d! Z4 o0 \, i6 Y% X, v% k* d" P  N串口信息:
  `0 e& t/ a0 s, c' z* ]5 |Playing WAVE '/usr/bin/Rear_Center.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
# E/ ]8 Z3 P) A6 _) E' U+ N2. 录音测试$ `7 J! y: j4 g
# killall -9 Launcher
8 |/ p2 e% Y( P1 d2 U# killall -9 MediaUI/ S( e& M( t  ]  c5 q7 e3 H% [" [
# killall -9 CameraUI
# E8 P8 Z- ~. R4 z; Q' K#arecord -Dhw:0,0 -r 44100 -f S16_LE -d 10 record.wav       录音! I! }# B( P: j8 E3 v: O
串口信息:. E) c' k) z  C' b! V" t
Recording WAVE 'record.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo; d/ j+ A0 r: G1 ?# A
播放录音. [8 W, o* W/ C) \$ u$ H! m9 Z1 L
#aplay -Dhw:0,0 record.wav                           播放录音' h# _6 z+ r9 J. @
串口信息:4 G4 B  x# l" Y( J7 O' C, w' a) U
Playing WAVE 'record.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo5 p/ ~* j. T7 @% J
八、  摄像头测试1、 USB摄像头测试, ~/ L" v* W. t+ J4 L# s
一般USB摄像头插入之后,自动加载驱动。- ?6 F, B1 A) E
01. 插入USB摄像头,在调试串口输入命令查看USB状态。
1 l5 R6 h! N$ z2 g# lsusb
9 |" w7 A) D1 @' Y! i/ j串口信息:
; u+ N+ E2 m  ]' VBus 001 Device 004: ID 0909:0824
5 A3 A5 J9 Y" R* m查看USB摄像头的ID信息。: a7 _: a+ J9 D! }8 j. Q6 t' O
02. 输入命令查看USB摄像头的设备节点,可见设备节点video0
( G/ \3 c  V# E" `' r& R, l# ls /dev/video*3 i5 n- k% M5 ^# U
串口信息:
6 `3 Q, U# Z' F" |2 r7 T2 r/dev/video    /dev/video0                 其中/dev/video0为刚才插入的usb设备。
% i- r+ V4 H, s6 V6 _% v03. 另外还可以采用UVccamera测试程序,预览图像:: i; r2 E$ C- o2 f1 {6 X
    注意:uvccamera预览不能先使用自带qt应用测试CameraUI测试,如果测试后必须先重启。; A9 g2 i6 ^/ X2 e) J' \! R& w
#ps4 A; `2 l" J4 @" u
1312 root     /Launcher3 B; n6 Z# K- d- z% z& l3 s+ M. I
1313 root     /MediaUI/ H: V( B* h, F7 T  N* w) W" W, r3 e
1314 root     /CameraUI
( x3 Z0 p: K. K% Q将上述3个进程kill。/ Q, l9 `% V. c) S( A5 }
#kill -9 1312 1313 13145 g! o$ r6 @' L5 v# {! Z& t
#fbinit 0
% I7 S7 k8 Z' i. A# z# J4 \#fbinit 1
; o# Z( Y2 l% P! {. Y) u#fbinit 2
2 G4 \  y4 `: i8 k7 ~4 a#uvccamera; e2 ~6 X3 W$ z5 @5 e  I! e
devpth: /dev/video0
# `( d0 }  H  ^) }& d% I   width: 8009 W- f0 P2 m( U/ Y
  height: 600
5 G3 t$ Q" s" Xposition: (0, 0)
3 R1 B7 v3 x7 f   frame: (800, 600)6 c; ^8 X2 B0 z9 F* |& L0 @
  format: 69
" k* n5 E4 T8 W& f/ n9 R[ION] map success: base 0xb6d14000, physical 59200000. c2 \4 D5 y6 ~: D7 T
00000001 00000001
* r# y( p" |# ^" b00000001 000000019 w. o9 @1 Z% n. z) Y

3 F  y# s4 e! w* Q( t. k& q, ]04. 采用自带Qt应用测试CameraUI
* t  F0 [/ R/ M; I/ w2 P测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用CameraUI测试。点击下面图标: 点击 选择节点为video0,确定,打开预览,可查看usb摄像头画面。/ A0 j9 C$ ^0 ]5 ]: j( C# }
2 、CMOS-OV5640测试( e* O. `6 `# c  y4 s5 f/ n* P
cmos ov5640还可以使用cameratest预览, |+ k6 s. ?5 T( ^
注意:使用uvccamera预览不能先使用自带qt应用测试CameraUI测试,如果测试后必须先重启。0 B. Q/ E# p/ o- h7 o1 S, p3 f+ k
#ps
' x# z% `0 u# l$ x5 h$ f+ v1 n1312 root     /Launcher
( v9 [* c( ]3 C4 Y/ [# ^1313 root     /MediaUI
4 L, o5 O) ~3 X4 u8 W1314 root     /CameraUI
8 ~$ y; @- {* w, l% g3 M将上述3个进程kill。
1 I; j0 y2 K0 u, U/ V! T7 J#kill -9 1312 1313 1314
; {: x9 ~, T8 C: P6 Q, O0 _+ ]#fbinit 0
. a0 p* t, I' ^5 K#fbinit 1
+ j. z2 |- \3 n. t- U4 ~5 \' B#fbinit 2
( U+ Q7 H3 ^; ~+ @& s3 A5 F# cameratest  -d /dev/video16 Z/ y# J! p1 b0 M. U6 h1 Y1 Z
其中video1是对应的节点。& ?, z; o% ^) p5 j! \# O
devpth: /dev/video1
+ t  `: J* K" O+ ~width: 640+ B" r8 A4 c; `5 Q  v3 B
height: 480
0 v/ g3 t' `4 ~" Z& Bposition: (0, 0)
( j" K. B; b+ C* j+ d5 k5 t/ uframe: (640, 480)
# t2 u+ D* W) dformat: 76( W& {! ^- D4 G/ ?, Z$ N4 l# ^& b
fps: 30
5 w3 r0 m# p# P3 [* K  |& _dragonboard(debug): the window: x: 0,y: 0,width: 640,height: 480
1 N- O+ [. s# B% _2 T0 ~5 C  L; Sdragonboard(debug): the output type: 0
! S' A' G+ x( r' h( U5 `OKA40i平台支持OV5640预览。采用自带qt应用测试CameraUI
. T+ q9 E/ Y2 F* R" M6 o- U/ p7 c测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用CameraUI测试。点击下面图标: 点击 选择节点为video1(video1为ov5640产生的节点,具体根据实际选择),确定,打开预览,可查看ov5640的摄像头预览画面。( B2 V8 A: q! A8 d5 q
3、  模拟摄像头测试9 T% w- \( ]  v8 X
飞凌自制模拟摄像头模块如下图:
  f# h% x* c5 t2 f( B  y9 D
. \$ W7 @) `9 O& rvideo4-7为tvin产生的节点,左上角对应video7,左下角对应video6,右下角对应video5,右上角对应video4,根据实际情况选择 。
  c2 ^" j# R7 a; u( H01. 采用自带qt应用测试CameraUI! k! y( w/ ]* X4 a" C6 j
测试前,插入SD或者TF卡,开机自启动之后,默认启动Launcher,MediaUI,CameraUI。采用 CameraUI测试。点击下面图标: 点击 选择节点为video4,确定,打开预览,可查看tvin的摄像头预览画面。其中CameraUI支持PAL格式。
# C1 n, a8 W/ H9 F9 |0 m02.  还可以采用sdktest进行测试。
' ]) a2 I6 Y- S# E2 C#ps  ~# P$ v' M" w- e
1312 root     /Launcher0 k8 z  j# q: W  z6 P1 _' U* q7 @
1313 root     /MediaUI
! k1 z/ C0 J8 p7 r/ G1314 root     /CameraUI
0 l5 }! A7 m; V$ h  x/ L将上述3个进程kill。4 z+ j1 u8 p, b" \0 _% U
#kill -9 1312 1313 1314
3 `! w* V# Y1 d  v+ x! ]+ x#fbinit 0
+ t5 Q7 ?! B' p#fbinit 1
8 i  B0 i) M  H% k5 _  c% s: b#fbinit 2
& O8 s5 U# u0 h5 o2 x$ k8 K: P# /sdktest 1 4可以采用PAL或者NTSC格式均可以。
4 G5 u5 t9 w8 X; ~% u; p& N03. 模拟摄像头还可以使用tvdcamtester进行测试,此方式支持PAL方式。
- D+ N& c4 i$ F! q#  tvincamera -d /dev/video77 A! s0 D- V& Q' u% _
devpth: /dev/video7
- ?; b7 U, ^  Z3 j  width: 720  A& a; Q! g+ l9 L
  height: 576
' P6 t9 ?9 ~; W- O  position: (0, 0)
& j( @" K: e9 y# T0 S8 Y8 t  frame: (640, 480)& m& [, x0 ?4 R3 U+ {$ r) Q* ~
  format: 77* S; J7 o5 t. g1 f& a4 e6 {2 P( j
dragonboard(debug): v40 tvin test v1 version 2016.1.206 ?+ A4 n$ |& x5 c1 X
dragonboard(debug): the output type: 07 t  Z% p8 A7 W  g: g! @
dragonboard(debug): screen width: 1024, height: 600
. a4 l! w& Q/ I: Q+ z, cdragonboard(debug): inp.index: 0( Y( R; r; j, D3 T- c- a
dragonboard(debug): *********image source width = 720, height = 576********
/ P+ B* X( s6 b4 i- W
5 a: G7 R  C+ c1 M% @' O
九、  RTC时钟驱动测试RTC测试,主要通过使用date和hwclock工具设置查看软、硬件时间,测试当操作系统重启的时候,软件时钟读取RTC时钟是否同步(注意:确保板子上已经安装了纽扣电池)。
& R' Y3 s9 P7 ^2 y; r设置时间命令帮助如下:4 \% i; \% G8 y" L" G4 z9 {0 l8 i
# date -help
# V) W# X1 q9 A# f串口信息:- B" c1 }5 `) t6 _
Usage: date [OPTIONS] [+FMT] [TIME]0 m% \) j* y% b  L% e) W7 L
display time (using +FMT), or set time
3 s) S1 n* U7 q- Q        [-s,--set] TIME Set time to TIME
2 x+ }: O- k& ^5 |8 n; x        -u,--utc        Work in UTC (don't convert to local time)
1 _4 D+ ~2 a/ q9 Y# @3 p        -R,--rfc-2822   Output RFC-2822 compliant date string
( n( [) R! a0 D3 W0 y6 `7 d        -I[SPEC]        Output ISO-8601 compliant date string, ^5 Z: y% A( M# u' W
                        SPEC='date' (default) for date only,' g- u" A* c' U# p
                        'hours', 'minutes', or 'seconds' for date and
) y- U+ Q: p- ?4 z/ |$ v                        time to the indicated precision! y- C6 V3 r% Z1 J7 z' x; x1 X
        -r,--reference FILE     Display last modification time of FILE
# ?& a  t) N: L7 A        -d,--date TIME  Display TIME, not 'now'! l2 j2 v% d8 H( Z5 }6 m: P
        -D FMT          Use FMT for -d TIME conversion/ C! `9 G% ]- a0 t$ [4 ^' D
7 W8 b5 Z! d# s3 Q
Recognized TIME formats:
6 b& c3 ]- d0 N, V; B+ k        hh:mm[:ss]8 F2 B$ R5 a& A% k, I
        [YYYY.]MM.DD-hh:mm[:ss]6 S! ^' [0 {0 E
        YYYY-MM-DD hh:mm[:ss], o5 |! j3 F0 Y: H' z: a
        [[[[[YY]YY]MM]DD]hh]mm[.ss]
8 v, D0 L0 X, c; O3 h: o( y; u        'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead
7 e7 _, \2 B# D! y5 u% e9 v" J设置时间如下命令
6 ^3 {) r; I& m( T  m' ^8 `$ o#date -s 2015.05.29-09:47:13
8 t5 b2 S9 W/ u' {+ \串口信息:( W8 B+ w2 _8 c, `2 u. |
Fri May 29 09:47:13 UTC 2015
2 n) p) u9 n  ]5 {; Z1 u说明:date设置的格式:MMDDhhmm[[YY]YY][.ss], MM是月份,DD是日期,hh是小时,mm是分钟, 年份可以写2位的YY或4位YYYY,秒可以用.ss表示。
' D! b8 z2 ~( c& U1 T9 ihwclock —查看下硬件时间$ w  u& M, y! e3 a  V" P
#hwclock –help
' F( K1 m  k. Z' s! N# o4 n串口信息:* _! d  G" A( `% e3 `
Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-t|--systz] [-l|--localtime] [-u|--utc] [-f|--rtc FILE]. x: b3 `# I) E8 G3 }% X
Query and set hardware clock (RTC)
* z" g. P7 I* S# r! _6 F) o( k6 }        -r      Show hardware clock time3 R) ~; Y( ?. Z! ?$ s
        -s      Set system time from hardware clock9 _( R0 }6 U2 u# M
        -w      Set hardware clock from system time1 ^$ g$ E5 T  B2 X! A$ J3 B
        -t      Set in-kernel timezone, correct system time  G# Z+ [. U6 V3 y- d
                if hardware clock is in local time
5 ^3 `: u( K5 ~        -u      Assume hardware clock is kept in UTC
; ~' C: V; p; @* `) N% ]3 w" v        -l      Assume hardware clock is kept in local time9 Q+ }+ ^: T8 C, Q
        -f      FILE Use specified device (e.g. /dev/rtc2)
6 s1 `- B* Q, `( ]! ~) T/ I8 V! I6 a" p( F+ ^& E
# hwclock -w  U* V2 M2 X6 b3 H1 N8 `
hwclock -w —将系统时间设置到时钟芯片里面。如果没有这步,下次启动时,系统时间是不会更新的。. m, Z/ D! ^6 M7 ]4 y
断电重启
% a; T* q  L& }1 h& V#date6 u/ A9 J, S5 a
查看时间是否保存。
4 N6 Q% r% w0 g; [% P4 e8 N5 v) H$ k* X7 Y
十、  4G模块测试注:4G模块是选配模块,如有需要,请联系飞凌销售。3 Q' N/ [( U( V" s7 n
准备一张移动4G SIM卡,4G ec20模块一个,将SIM卡插入4G模块卡槽中固定好,将天线接到主ipex天线座,开机上电。; k) f1 F. r) `
1、 查看节点是否存在:
. m, v$ Y! H2 u7 @" K, }; h[root@sun8i ~]# ls -la /dev/qcqmi0" u4 J7 I8 n6 Z7 u4 p
存在qcqmi0节点,且识别usb0节点,则4g模块正确识别并加载。& a" W3 S( n8 s* O
2、 拨号:
% X$ J; @4 Q2 w& @; @' D- f) @: w#/usr/bin/quectel-CM &
1 g6 [: z! j( L- g( V! M. R4 M[01-01_00:33:08:257] wcdma<E_QConnectManager_Linux&Android_V1.1.343 F- Y, S" E( m% ~6 q
[01-01_00:33:08:258] quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)
5 I6 v* l5 F0 }' P% }, i( F; G1 n& I[01-01_00:33:08:263] Find /sys/bus/usb/devices/1-1.3 idVendor=2c7c idProduct=0125
* n" A6 z5 G7 ]0 Y8 x) j[01-01_00:33:08:263] Find /sys/bus/usb/devices/1-1.3:1.4/net/usb0" ~  p  g: X1 e1 K0 ?0 t
[01-01_00:33:08:263] Find usbnet_adapter = usb05 T' y2 o0 M3 m
[01-01_00:33:08:264] Find /sys/bus/usb/devices/1-1.3:1.4/GobiQMI/qcqmi0/ L2 n) r  A: }* [7 M" ^5 Q( [
[01-01_00:33:08:264] Find qmichannel = /dev/qcqmi0
; M& |: W$ i/ c. |4 d) e[01-01_00:33:08:288] Get clientWDS = 7+ s. U- ], X% `" N; l
[01-01_00:33:08:320] Get clientDMS = 8$ {; }2 v) |4 o& W( L
[01-01_00:33:08:351] Get clientNAS = 91 a/ m4 q- m3 L9 d2 I
[01-01_00:33:08:385] Get clientUIM = 10
0 Y8 b, a! {/ F8 n5 D$ l" O3 R[01-01_00:33:08:416] Get clientWDA = 11$ ]( K/ j, {0 o2 B( p
[01-01_00:33:08:448] requestBaseBandVersion EC20CEHCR06A03M1G0 @% N9 }# y! P8 `0 ^
[01-01_00:33:08:545] requestGetSIMStatus SIMStatus: SIM_READY+ M4 f  W+ k4 x/ M& O- d5 L
[01-01_00:33:08:576] requestGetProfile[1] ctnet///0
" z9 V  s$ Q& I[01-01_00:33:08:608] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE
# K; ]0 i" t0 h/ m[01-01_00:33:08:640] requestQueryDataCall ipv4ConnectionStatus: DISCONNECTED4 ]5 W, T9 r. M& \+ U% y
[01-01_00:33:08:704] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE3 Z) A  w! t  W; t) G. |- |
[01-01_00:33:08:736] requestSetupDataCall WdsConnectionIPv4Handle: 0x86ad3a90
. F( i. k% N) o* y[01-01_00:33:08:832] requestQueryDataCall IPv4ConnectionStatus: CONNECTED5 H9 d; _' {! a2 W" h
[01-01_00:33:08:865] ifconfig usb0 up; z( |2 _% W7 Q! i
[01-01_00:33:08:884] busybox udhcpc -f -n -q -t 5 -i usb0
% ?" r9 @9 _* ^8 \, _" E: z1 F5 L[01-01_00:33:08:898] udhcpc (v1.18.3) started0 P/ z  C7 g; P, m0 G1 ^
[01-01_00:33:08:970] Sending discover...
! H4 B4 J- H6 V! ~* v7 v/ c! ~[01-01_00:33:09:071] Sending select for 10.51.194.11...
9 C, j. p: A" \, @% l[01-01_00:33:09:190] Lease of 10.51.194.11 obtained, lease time 7200
6 X# T7 F5 U5 s# r% E1 f' d7 Y9 J: a/ h[01-01_00:33:09:210] deleting routers
9 x1 h! D8 o% \  @9 ~: Proute: SIOCDELRT: No such process5 N! ~" l$ F! M% [4 [
[01-01_00:33:09:225] adding dns 222.222.222.222+ ]  \/ @2 w9 U6 P, r  |, i  |
[01-01_00:33:09:226] adding dns 222.222.202.202
1 ]7 ^3 f# y! N- v* {9 @8 h& Y: {3、 测试网络通断
7 s2 s* R  u6 |. W8 h% Z# f& H输入指令
# c( [0 ]$ V4 w) ]( s- f5 \# ifconfig eth0 down
$ T) w% ]0 @0 C; ?! x#ping  -c 3 www.baidu.com& h% h( N8 U/ |% V2 |1 ^1 P2 j
调试串口输出如下信息:8 S2 H% r) e: k* W5 F
ping www.baidu.com  -c 3
8 s0 z  [( A3 C0 k* T* q- {PING www.baidu.com (220.181.38.149): 56 data bytes
; x, z6 E# j% S64 bytes from 220.181.38.149: seq=0 ttl=51 time=44.181 ms
, |# F4 G6 b& s( A. U  Z64 bytes from 220.181.38.149: seq=1 ttl=51 time=58.372 ms
- F* _8 @! [- R: K64 bytes from 220.181.38.149: seq=2 ttl=51 time=66.671 ms5 `& J  z$ [) R5 @3 D! \# @+ Q- @+ K
# i: L3 D1 Z( {; B7 o
--- www.baidu.com ping statistics ---, E: |) g  Y' }; F
3 packets transmitted, 3 packets received, 0% packet loss
1 j! k  M, _8 g9 t7 i/ Wround-trip min/avg/max = 44.181/56.408/66.671 ms: \6 ]( x# \/ P5 q
4、4G热点:- l0 }+ u6 D. W7 b) {& D0 h, s, l/ M
# /usr/bin/quectel-CM  &6 s3 |: k- H; V4 G2 O3 y. D! `
#echo 1 > /proc/sys/net/ipv4/ip_forward1 V$ S+ R, R$ ~. G- v% ]# z
#iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE8 c* o/ C( k2 {7 b* m8 o
#insmod /lib/modules/$(uname -r)/8723bu.ko6 r2 i4 c$ b; K& \* v
#ifconfig wlan0 192.168.18.1$ u: Q" z7 O) |- H
#udhcpd -f /etc/udhcpd.conf &8 ^) c+ ~6 W8 N/ T+ M
#/usr/sbin/hostapd -d /etc/hostapd.conf &
0 J( M/ p4 F" b: V生成ssid为forlinx_a40i,密码为12345678的AP节点,手机连接forlinx_a40i,可连接外网。$ T1 \( t( B! c0 N) p7 @) M; ]
十一、  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。
0 `& m) D5 X; ]$ a- ~2.把飞凌的TTL转RS232模块接到开发板UART2(ttyS2)或者UART3(ttyS3)上,串口线连接到RS232设备,连接好硬件后开发板上电。
8 P5 x% J" M/ l3.以UART3为例,终端中输入如下命令,tty_test启动后会不断的向外发送“abcdefg”。将收发短接进行测试。UART2口类似,修改为对应设备号即可。: h) g( w/ C- E, q
# uart  /dev/ttyS3  9600: B+ T" w7 _- n

$ R2 y- r) B. F6 l' n/ SWelcome to TTYtest! Press Ctrl + 'c' to stop.
+ z0 v: M! q0 f3 w* w( S5 y6 \6 n
; I: W- a% ~  f/dev/ttyS3,creat thread 3068421232 sucess
1 k0 X% M0 C! ^1 S) N! H! x' v/dev/ttyS3,creat thread 3060032624 sucess& g2 t# j- Q! {1 Q" b0 A+ ?
sendTotal=    9 num =    1 send = abcdefgh2 Z; m, }* X2 w3 ^9 B" R/ I8 m
recvTotal=   8 num =  1 recv = abcdefgh
2 j3 |- j4 K& Y' \' _hex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
3 c  ?, _0 U% x+ e- xsendTotal=   18 num =    2 send = abcdefgh5 C) d, ^4 O9 {* D  U7 e
recvTotal=  16 num =  2 recv = abcdefgh
& s" W3 `/ E/ S' F. Thex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
3 n8 {3 _- _; S/ s3 T. r+ osendTotal=   27 num =    3 send = abcdefgh
. Z, R+ v5 c: g4 V" J( e' R6 UrecvTotal=  24 num =  3 recv = abcdefgh
* L& d/ l/ |3 `3 H, Rhex:0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68
' Q% M. K8 Z8 [: T1 o; h
( E. \! H( Y* ?- Z" l0 ~7 t/dev/ttyS3,Send: 3 ,Receive: 3
9 {. D, J4 x9 L* s9 a) W/ H  H( m+ K0 w十二、  RS485测试默认UART5用作RS485功能,对应节点为/dev/ttyS5。采用RS485转232模块,与电脑相连。
* E0 n# O2 n: w9 N. R1 L终端中输入如下命令,tty_test启动后会不断的向外发送“abcdefg”。. j3 {% ?- }9 Z4 i8 B
#uart  /dev/ttyS5  9600% ^0 _- k9 p4 _9 K
电脑端串口助手(在用户资料\工具\串口助手中),发送abcdefg后,接收到RS485发送过来的abcdefg。
% ~* E* H4 Z% h0 y
& \  Y1 t, ]& c% ], p十三、  数据库测试打开数据库,输入sqlite3,如下:* x' f3 n+ Y, J( M
#sqlite31 g% @( s# J. }1 g  Z' r2 c
SQLite version 3.15.0 2016-10-14 10:20:30
! p  l1 [; L& }5 L  A& LEnter ".help" for usage hints.
6 Z; F+ d- u, u; n7 E6 S/ yConnected to a transient in-memory database.
" g  Y6 n9 p: i* w3 s* b4 @Use ".open FILENAME" to reopen on a persistent database.
, A# y  }( Z% J' m9 y$ `. {sqlite> create table tbl1 (one varchar(10), two smallint); //创建数据库tbl1
6 ]6 w( H' Y# H% _& F. H' j9 j% ^sqlite> insert into tbl1 values('hello!',10);//数据库中插入hello!|10% X1 @9 [3 i# S1 b: f# {8 I( o
sqlite> insert into tbl1 values('goodbye', 20);//数据库中插入goodbye|20& K! ~" Y" F/ B5 w9 c  }
sqlite> select * from tbl1; //读取数据库tbl1中所有内容如下
/ P  t# d& d8 e4 v, }9 W, R: J7 ]8 R. whello!|10
2 Y- _9 f) u1 c6 Xgoodbye|20
- B  \6 e2 d' B. E' vsqlite> .quit //退出
. q2 J2 k3 F; W十四、  SPI测试默认支持1路SPI片选,分别对应节点为/dev/spidev2.0。
. h1 b' b/ i+ S5 g$ |短接MOSI与MISO,对应SPI串口的8,10引脚:
) z0 v  \' ~/ Q! U# /usr/bin/spi  -D /dev/spidev2.0
0 t/ z. H, \' x1 f( _spi mode: 03 P: g8 ], c  T/ V8 N; l+ V
bits per word: 8; P( {2 @3 e( |
max speed: 500000 Hz (500 KHz)
0 M% O7 y' Q& x. t3 K
$ K2 n3 p$ U* n. h* v  A* |FF FF FF FF FF FF! z( ^. Z- K$ C* V) K# f. R
40 00 00 00 00 95
3 b1 M% j4 e5 M  y$ w2 qFF FF FF FF FF FF0 C6 S- K) a. T/ a) d& U
FF FF FF FF FF FF3 `' C6 o0 e( U2 u
FF FF FF FF FF FF6 f, v; `) s2 o# t" L
DE AD BE EF BA AD0 v# N4 W$ ^6 N. x% }
F0 0D
8 U  z8 W% ]( J5 d& R5 y2 y3 h3 Y十五、  按键测试# keytest
% |7 {% `6 k& @/ S$ vInput driver version is 1.0.1
  `9 ~, A0 w; \0 R( |Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x1002 j/ R9 V; ]. [  V$ l
Input device name: "sunxi-keyboard"
4 [, s- g# Q; N7 K. L% ~, _! B$ ?  eSupported events:
+ Z, f" k4 ^  X. S3 a8 _    Event type 0 (Sync)# k$ ]2 l# I% Q" g9 [
    Event type 1 (Key)
& I" o. w* [  @/ W        Event code 28 (K5): H2 q+ t" i; F5 r2 Q6 q; s1 X# W
        Event code 102 (Home)
5 T; g$ Q! }8 b; d) \; F        Event code 114 (K1)7 U/ N0 I" A. ~$ @2 j
        Event code 115 (VolumeUp)
- _9 G) u6 X' |. b" I7 w        Event code 139 (K2)$ [/ E1 O: r* L( i
Key, K5(102, 01)//K5按下
. e8 J# m0 }  hKey, K5(102, 00)//K5抬起
4 \$ }' N" `, |4 G
/ A! A. l) {: X; f' W' e( jKey, K2(28, 01)//K2按下% U6 s3 G" ~' S' [/ V) b
Key, K2(28, 00) //K2抬起
% K( G4 A; O: C" T
8 L7 A3 L0 g. H, D4 @Key, K1(114, 01)  //K1按下
% M1 L$ F5 ~  W- f" EKey, K1(114, 00)  //K1抬起
+ w) a2 C, G5 ], L8 i  L. f十六、  显示测试Lcd显示目前支持飞凌并行24bit 1024x600,飞凌lvds接口1280x800显示电容触摸一体屏,支持hdmi1080p@60Hz,Tvout显示输出。+ L0 `* J8 B4 j& ^4 B# f
1、背光测试% h! b+ s0 l2 T! V3 `3 v5 I
查看触摸驱动是否存在,如果不存在的话就加入驱动模块到系统# x( I5 E5 [0 h) h% M# P0 b, G
# lsmod2 c7 V5 }$ y- f! d- H( h7 m
mali 278345 0 - Live 0xbf010000 (O)
3 G4 G+ F* e8 L  Ugt9xxnew_ts 44460 0 - Live 0xbf0000001 U% F- }7 m+ ^! t0 ^0 x
1.导出qt和tslib环境变量  e* \3 C" z+ C. N
# source    /qt5.9.sh) N7 X. G) V7 F8 L, m
2. 背光调节# O' `$ C1 d- ?2 i
#ps5 H2 s$ s8 g% S1 y
1312 root     /Launcher' t% D* B- q6 j/ ~+ A. z
1313 root     /MediaUI
$ L, V4 L7 ]& {1 w+ d  `8 a* U1314 root     /CameraUI
0 g$ F6 a8 S3 |6 f9 k' L将上述3个进程kill。; k7 i9 B. f8 ]! P/ O/ J
# kill -9 1312 1313 1314
: e  \, c- {" f' T9 G8 T: E#fbinit 0# `! d5 w) [! _
#fbinit 1
& f0 B1 \2 l/ }6 W# r#fbinit 2
7 E; Y' h) a! L4 ]: e# backlight_gui
. `, p, q8 ]/ G滑动进度条,调节背光亮灭。& c* r- K: m( B$ D9 N+ G3 N( v& ^
2 j5 A" R8 D  y. S2 U4 M. H, ^
2、触摸测试
6 k( @, m" H- r' z注意:
9 ^( w2 H1 z7 [5 |  }开发板默认支持ft5xxx和gt9xx两种触摸驱动;可通过命令行调用脚本方式切换两种触摸;执行脚本切换后要重启开发板。
$ D4 V! c7 W& [; M+ f/ r1 ~+ N( s  E2 k+ V6 kts_module_ft5xxx.sh  调用ft5xxx驱动;
: K; `0 e2 b0 z) l$ @& f7 lts _module_gt9xx.sh  调用gt9xx驱动。0 P9 L' [; A' |
查看触摸驱动是否存在,如果不存在的话就加入驱动模块到系统。3 @) i8 E0 P  y, d  `& D
# lsmod9 a% s* j, Q6 _
mali 278345 0 - Live 0xbf010000 (O)
; }3 n# o$ Y5 s2 c" Tgt9xxnew_ts 44460 0 - Live 0xbf000000% r/ \; ]6 s* N! |3 v5 }( `4 u% Z
1.导出qt和tslib环境变量
3 O: g# d8 H# I# source    /qt5.9.sh9 y/ |. Q/ N5 O
2. Tslib测试程序测试触摸& v% y+ s3 N- N& X2 y
#ts_print8 S/ s$ h! y7 `" Y: Z, g9 E+ x
1434592025.966377:    560    446    255& |* T$ F$ D9 H
1434592025.976749:    560    446      0; s: S# G8 |7 m; c! k( e7 u; Q  M1 K
触摸任意一点,查看上报坐标值,是否正确。9 x, f. U) p0 Q5 P! i) S
原文链接:https://www.forlinx.com/article_view_576.html* o( w7 N' l7 u
  • TA的每日心情
    开心
    2020-9-8 15:12
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2021-4-20 09:46 | 只看该作者
    看完太费劲了  好复杂

    该用户从未签到

    3#
    发表于 2021-4-23 17:30 | 只看该作者
    很详细 ,就是有点太多了
    $ k; K' ^0 T7 j' F! r1 L+ K2 [
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 09:44 , Processed in 0.187500 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表