前言
本指导文档适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:Ubuntu 14.04.3 64bit
虚拟机:VMware14.1.1
U-Boot:U-Boot-2017.01
Kernel:Linux-4.9.65、Linux-RT-4.9.65
Linux Processor SDK:ti-processor-sdk-linux-rt-am437x-evm-04.03.00.05
进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机、Linux Processor SDK等相关软件。
本文档主要提供评估板的硬件资源测试方法。无特殊说明情况下,默认使用UART0作为调试串口,使用Linux系统启动卡启动系统,通过路由器与PC机进行网络连接。
1评估板快速测试
1.1系统启动测试
接入电源,并使用Micro USB线连接PC机和评估板的USB TO UART0调试串口。
图 1
打开设备管理器,确认评估板UART0调试串口对应的COM端口号。
图 2
图 3
打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无检验位。建立串口连接,如下图所示。
图 4
将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将拨码开关拨为00110(1~5),此档位为SD卡启动模式。将评估板上电启动,串口终端会打印以下类似启动信息。
图 5
图 6
图 7
在系统启动过程中的LED变化说明如下:
评估板上电后,电源指示灯D3点亮;随后U-Boot第一阶段启动,D1点亮;紧接着U-Boot第二阶段启动,D2点亮;直到内核启动运行时,D2熄灭,D1进行心跳闪烁;NAND FLASH进行读写时,D2闪烁。
系统启动后会自动登陆root用户,说明使用Linux系统启动卡启动评估板成功。
图 8
1.2文件测试测试
PC机和评估板之间传送文件的常见方式如下:
- 通过Linux系统启动卡、U盘等存储介质方式拷贝。
- 通过NFS、TFTP、OpenSSH等网络方式拷贝。
1.2.1通过Linux系统启动卡
将配套的系统启动卡插到PC机,然后把需要拷贝到评估板的文件复制到系统启动卡的BOOT分区,如下图所示。
图 9
将系统启动卡插到评估板,启动系统并执行如下命令查看分区信息。系统启动卡的BOOT分区挂载在评估板文件系统”/run/media/mmcblk0p1”目录下。
Target# df
Target# ls /run/media/mmcblk0p1
图 10
1.2.2通过OpenSSH
OpenSSH是SSH(Secure SHell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。
在Ubuntu中执行如下命令,查询是否已安装OpenSSH。
Host# ssh -v
图 11
可看到系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。
将评估板RGMII ETH1网口通过网线连接到路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0为网卡名字,请根据实际情况修改。
Target# udhcpc -i eth0
图 12
执行如下命令可查询IP地址。本次查询到的IP地址是192.168.0.106。
Target# ifconfig
图 13
执行如下命令在Ubuntu中新建文件test1,并使用OpenSSH命令将test1文件拷贝到评估板文件系统根目录。
Host# touch test1 //新建文件
Host# scp test1 root@192.168.0.106:/
图 14
如出现提示”Are you sure you want to continue connecting (yes/no)?”,请输入:yes。
在评估板上执行如下命令可看到从PC机拷贝过来的文件,如下图所示。
Target# ls /
图 15
执行如下命令在评估板文件系统根目录新建一个测试文件test2。
Target# cd /
Target# touch test2 //新建文件
图 16
在Ubuntu上执行如下OpenSSH命令将评估板测试文件test2拷贝到PC机”/home/tronlong/test/”目录下。如果传输的是文件夹,请在scp后面添加参数”-r”。
Host# sudo scp root@192.168.0.106:/test2 /home/tronlong/test/
Host# ls /home/tronlong/test/
图 17
在Ubuntu执行如下命令可通过OpenSSH登录评估板文件系统。
Host# sudo ssh root@192.168.0.106
图 18
如需退出登陆,请执行exit或者logout命令。
1.3LED测试
评估底板LED与GPIO对应关系如下表所示。
表 1
D8
|
D9
|
D10
|
D11
|
GPIO5[10]
|
GPIO5[11]
|
GPIO5[12]
|
GPIO5[13]
|
进入评估板文件系统,执行如下命令逐盏点亮、熄灭LED。
Target# echo 0 > /sys/class/leds/user-led0/brightness //控制D8灭
Target# echo 1 > /sys/class/leds/user-led0/brightness //控制D8亮
Target# echo 0 > /sys/class/leds/user-led1/brightness //控制D9灭
Target# echo 1 > /sys/class/leds/user-led1/brightness //控制D9亮
Target# echo 0 > /sys/class/leds/user-led2/brightness //控制D10灭
Target# echo 1 > /sys/class/leds/user-led2/brightness //控制D10亮
Target# echo 0 > /sys/class/leds/user-led3/brightness //控制D11灭
Target# echo 1 > /sys/class/leds/user-led3/brightness //控制D11亮
图 19
将产品资料“4-软件资料\Demo\platform-test-demos\led”目录下的led_loop.sh脚本程序拷贝到评估板文件系统。进入脚本程序所在路径,执行如下命令运行脚本程序,循环点亮LED。
Target# ./led_loop.sh
图 20
可按”Ctrl+C”终止运行脚本程序。
在执行程序时,若提示”-ash: ./led_loop.sh: Permission denied”没有权限,可执行命令”chmod 777 led_loop.sh”获得执行权限。
1.4按键测试
评估板用户按键与GPIO对应关系如下表。
表 2
KEY0
|
KEY1
|
GPIO3[7]
|
GPIO3[8]
|
进入评估板系统,执行以下命令查看按键事件号。
Target# cat /proc/bus/input/devices
图 21
从上图中可以看到按键事件号为event0,执行如下命令进行按键测试。
Target# od -x /dev/input/event0
先后按下评估板的2个用户按键,可看到如下打印信息。按”Ctrl+C”可终止测试命令。
图 22
1.5时钟设置测试
Linux系统中分别有系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。
如需使用RTC时钟,请先安装RTC电池。以下为时钟相关的常用命令。
Target# date
图 23
Target# hwclock -u
图 24
Target# date -s “2020-08-07 15:27:00”//设置时间:2020年8月7日15点27分00秒
Target# date
图 25
Target# hwclock --systohc -u
Target# hwclock -u
图 26
Target# hwclock --hctosys -u
图 27
1.6CAN总线测试
评估板有两个CAN接口,测试方法为:将两个CAN接口连接,测试两个CAN接口互相收发数据的正确性。
图 28
请按如下方法连接两个CAN接口。
- CAN0接口H端子,连接CAN1接口H端子。
- CAN0接口L端子,连接CAN1接口L端子。
- CAN0接口GND端子,连接CAN1接口GND端子。
进入评估板文件系统,并执行如下命令查看CAN设备。
Target# cat /proc/net/dev
图 29
执行如下命令可查看CAN配置命令的使用方法。
Target# canconfig --help
图 30
将产品资料“4-软件资料\Demo\platform-test-demos\can_test”文件夹下的两个脚本程序canconfig-can0-1.sh和can0-to-can1-test.sh拷贝到评估板文件系统任意路径下。在脚本程序所在路径执行如下命令运行脚本程序,测试CAN接口通信功能。
Target# ./canconfig-can0-1.sh
图 31
Target# ./can0-to-can1-test.sh
图 32
脚本程序的任务是从CAN0发送20帧预设数据到CAN1,同时从CAN1发送20帧预设数据到CAN0,并保存此两组数据到can0to1data.txt和can1to0data.txt文件。
图 33
打开当前目录下生成的can0to1data.txt和can1to0data.txt文件,查看文件内容数是否和下图一致。如一致则表示CAN通信功能正常。
Target# cat can0to1data.txt
Target# cat can1to0data.txt
图 34
1.7FRAM读写测试
本小节对评估板FRAM进行读写测试。
执行如下命令,将字符串数据写到FRAM。
Target# echo "www.tronlong.com" > /sys/devices/platform/44000000.ocp/4819c000.i2c/i2c-2/2-0050/eeprom
执行如下命令,读取写入到FRAM的数据。
Target# head -c 16 /sys/class/i2c-adapter/i2c-2/2-0050/eeprom
图 35
1.8DDR读写测试
Linux系统启动时,在U-Boot阶段完成DDR的初始化,并打印DDR实际容量,如下图所示。
图 36
DDR读写速度受实际情况影响,测试速率以具体情况为准,以下测试数据仅供参考。
进入评估板系统,执行如下命令对DDR读速度测试。
Target# bw_mem 100M rd
图 37
测试从DDR中读取100MByte数据,可看到本次测试的读速度约为:375.03MB/s。
进入评估板系统,执行如下命令对DDR写速度测试。
Target# bw_mem 100M wr
图 38
测试写入100MByte数据到DDR中,可看到本次测试的写速度约为:275.43MB/s。
进入评估板系统,执行如下命令对DDR拷贝速度测试。
Target# bw_mem 100M cp
图 39
测试拷贝100MByte数据到DDR中,可看到本次测试的拷贝速度约为:195.63MB/s。
1.9SD卡读写测试
本小节使用评估板配套的Linux系统启动卡来测试SD卡的读写速度。不同的SD卡以及不同大小的测试文件,对SD卡的测试结果会造成一定差异。评估板启动后,Linux系统启动卡的BOOT分区将会挂载在文件系统”/run/media/mmcblk0p1”目录下。
Target# ls /run/media/mmcblk0p1
图 40
进入评估板系统,执行以下命令测试SD写速度。
Target# time dd if=/dev/zero of=/home/root/test bs=1024K count=200
time命令有计时作用,dd用于复制,从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。
“if=/dev/zero”不产生IO,即不断输出数据,可用来测试纯写速度。
图 41
此处一共写200MByte测试数据到SD卡的test文件,可看到本次测试的SD卡写速度约为:200MB/12.70s=15.75MB/s。
测完写速度之后,重启评估板,并执行以下命令测试SD卡读速度。
Target# time dd if=/home/root/test of=/dev/null bs=1024K
“of=/dev/null”不产生IO,即不断接收数据,可用来测试纯读速度。
图 42
此处从test文件中一共读出200MByte的数据,可看到本次测试的SD卡读速度约为:200MB/9.93s=20.14MB/s。
1.10NAND FLASH读写测试
本小节对NAND FLASH的MTD6分区进行读写速度测试。MTD6是NAND FLASH的备份分区,一般存放小型文件系统,大小为32MByte。读写测试会将该分区内容擦除,请做好数据备份。
执行如下命令查询NAND FLASH分区,确认MTD6分区大小(读写请勿超出分区大小),将该分区内容擦除。
Target# cat /proc/mtd
Target# flash_erase /dev/mtd6 0 0
图 43
进入评估板系统,执行如下命令对NAND FLASH进行写速度测试。
Target# time dd if=/dev/zero of=/dev/mtd6 bs=1024k count=30
图 44
此处一共写30MByte测试数据到NAND FLASH的MTD6分区下,可看到本次测试的NAND FLASH写速度约为:30MB/6.62s=4.53MB/s。
重启评估板,进入评估板系统,执行如下命令对NAND FLASH进行读速度测试。
Target# time dd if=/dev/mtd6 of=/dev/null bs=1024k
图 45
此处从NAND FLASH的MTD6分区读取30MByte数据,可看到本次测试的NAND FLASH读速度约为:30MB/2.59s=11.58MB/s。
1.11调试串口切换测试
1.11.1调试串口切换测试UART3
使用RS232交叉串口母线、USB转RS232公头串口线,将评估板的RS232串口连接到PC机的USB接口,如下图所示。
图 46
打开设备管理器,确认RS232串口的COM端口号,如下图所示。
图 47
打开串口调试终端,选择正确的COM口,波特率为115200,8N1,无检验位,并建立串口连接,如下图所示。
图 48
进入评估板文件系统,执行如下命令将调试串口切换为RS232串口。
Target# setsid getty 115200 ttyS3
图 49
执行命令后,将会在新建的RS232串口会话框中打印如下类似登录信息,请输入用户名root并按回车键登陆,如下图所示。
图 50
1.11.2调试串口切换RS485串口UART4
使用RS232转RS485模块、USB转RS232公头串口线,将评估板的RS485串口连接到PC机的USB接口,如下图所示。
图 51
RS232转RS485模块与评估板上RS485串口连接方法如下:
- RS232转RS485模块485+端子,连接评估板RS485串口A端子。
- RS232转RS485模块485-端子,连接评估板RS485串口B端子。
- RS232转RS485模块GND端子,连接评估板RS485串口GND端子。
打开设备管理器,确认RS485串口的COM端口号,如下图所示。
图 52
打开串口调试终端,选择正确的COM口,波特率为115200,8N1,无检验位,并建立串口连接,如下图所示。
图 53
如需同时使用两个调试串口,则进入评估板系统后执行如下命令创建一个新用户(比如Tronlong),用户密码自定义。如无需同时使用两个调试串口,则可不创建新用户。
Target# adduser Tronlong
图 54
执行如下命令将调试串口切换到RS485串口。
Target# setsid getty 115200 ttyS4
图 55
执行命令后,会在新建的RS485串口会话框中打印类似如下登录信息,请输入用户名root再按回车键登陆,或输入用户名Tronlong再输入自定义密码登陆,如下图所示。
图 56
1.12 7英寸LCD触摸屏测试
评估板默认支持的7英寸LCD触摸屏型号为Tronlong的TL070A,请通过FFC软排线将LCD与评估板连接。
评估板上电,进入文件系统后即可看到LCD显示Matrix Qt界面,如下图所示。
图 57
在执行触摸屏校准程序之前,执行如下命令关闭Matrix用户界面程序,如有其它界面程序,请一并关闭。
Target# /etc/init.d/matrix-gui-2.0 stop
执行如下命令进行触摸屏校准。
Target# ts_calibrate
执行命令后LCD会弹出校准界面,如下图所示,请依次点击校准准星。连续点击五次之后,会在文件系统”/etc/”目录下生成触摸屏校准文件pointercal,校准后的信息记录在pointercal文件中。
图 58
图 59
执行如下命令重新启动系统界面。
Target# /etc/init.d/matrix-gui-2.0 start
图 60
LCD屏幕的背光支持8级变化,亮度级数为1~8,关闭为0,最亮为8。
进入评估板文件系统,执行如下命令查看最高亮度级数。
Target# cat /sys/class/backlight/backlight/max_brightness
查看当前亮度,执行如下命令。
Target# cat /sys/class/backlight/backlight/brightness
执行如下命令,通过修改亮度级数参数改变屏幕亮度。
Target# echo 6 > /sys/class/backlight/backlight/brightness
图 61
评估板基础设备树文件为内核源码”arch/arm/boot/dts/tl437x-evm.dts”,默认配置为7英寸LCD显示。查看LCD显示屏数据手册,关键参数如下。
图 62
图 63
基础设备树文件tl437x-evm.dts的7英寸LCD显示参数配置如下。
&lcd0 {
panel-timing {
clock-frequency = <33000000>;
hactive = <800>;
vactive = <480>;
hfront-porch = <40>;
hback-porch = <40>;
hsync-len = <48>;
vback-porch = <29>;
vfront-porch = <13>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <1>;
};
};
1.13 12.1英寸LVDS显示屏测试
评估板基础设备树文件为内核源码“arch/arm/boot/dts/tl437x-evm.dts”,默认配置为7英寸LCD显示,可通过对设备树文件进行修改以支持不同尺寸的显示屏。
评估板支持的12.1英寸LVDS显示屏型号为友达的G121SN014 V4。查看12.1英寸LVDS显示屏数据手册,关键参数如下。手册中未说明Front-porch、Back-porch、Sync-len等典型值,仅给出总的行/帧同步时间Blanking,可将总同步时间合理划分为对应的Front-porch、Back-porch、Sync-len时间。手册并未说明Hsync、Vsync的极性,默认低电平有效。
图 64
图 65
根据以上关键参数,如需使用12.1英寸LVDS显示屏,则基础设备树文件tl437x-evm.dts的LCD显示参数需进行如下配置。
&lcd0 {
panel-timing {
clock-frequency = <40000000>;
hactive = <800>;
vactive = <600>;
hfront-porch = <100>;
hback-porch = <60>;
hsync-len = <96>;
vback-porch = <5>;
vfront-porch = <13>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>; /* 配置LCD像素时钟下降沿传输数据,而不是直接根据
极性分析得出的上升沿*/
};
};
修改后请将tl437x-evm.dts文件重新编译生成dtb文件,dtb文件编译方法请查看Linux内核编译手册的设备树文件编译小节。
使用TL-LVDSLCD-A3转接板将12.1英寸LVDS显示屏与评估板连接,如下图所示。
图 66
使用新生成的dtb文件启动评估板,进入文件系统后即可看到LVDS屏幕显示Matrix Qt界面,如下图所示。
图 67