本小节使用评估板配套的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。
本小节对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。
调试串口切换为RS232串口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
使用RS232转RS485模块、USB转RS232公头串口线,将评估板的RS485串口连接到PC机的USB接口,如下图所示。
图 51
RS232转RS485模块与评估板上RS485串口连接方法如下:
打开设备管理器,确认RS485串口的COM端口号,如下图所示。
图 52
打开串口调试终端,选择正确的COM口,波特率为115200,8N1,无检验位,并建立串口连接,如下图所示。
图 53
如需同时使用两个调试串口,则进入评估板系统后执行如下命令创建一个新用户(比如Tronlong),用户密码自定义。如无需同时使用两个调试串口,则可不创建新用户。
Target# adduser Tronlong
图 54
执行如下命令将调试串口切换到RS485串口。
Target# setsid getty 115200 ttyS4
图 55
执行命令后,会在新建的RS485串口会话框中打印类似如下登录信息,请输入用户名root再按回车键登陆,或输入用户名Tronlong再输入自定义密码登陆,如下图所示。
图 56
评估板默认支持的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>;
};
};
评估板基础设备树文件为内核源码“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
USB DRD支持软件切换为HOST/DEVICE模式,USB DRD和USB OTG的区别在于:USB OTG可根据设备情况自动切换为HOST/DEVICE模式,USB DRD则不能根据设备情况自动切换为HOST/DEVICE模式,需要手动进行软件配置。
本章节测试使用SanDisk品牌、FAT32格式、16G容量的U盘,支持USB 3.0/2.0。不同品牌、格式或容量的U盘,测试结果会有所差别。
请通过Micro OTG转USB转接头将U盘与评估板DRD USB0接口连接,或直接将U盘与评估板USB1任意一个HOST接口连接。DRD USB0默认为HOST模式,本小节使用DRD USB0接口进行USB HOST模式读写测试,连接如下图所示。
图 68
U盘接入后会出现打印信息如下,可以从中看到U盘大小和挂载名,如下图所示。
图 69
从上图可看到U盘容量为15.4GB,挂载名为sda1。执行如下命令可查询挂载路径,挂载名和挂载路径请以实际查询为准,如下图所示。挂载多个存储设备时,挂载名可能会变更。
Target# df -h
图 70
执行如下命令,测试U盘写速度。
Target# time dd if=/dev/zero of=/run/media/sda1/test bs=1024k count=200
图 71
此处一共写200MByte测试数据到U盘的test文件,可看到本次测试的U盘写速度为:200MB/6.41s=31.20MB/s。
重启评估板,进入文件系统执行如下命令测试U盘读速度。
Target# time dd if=/run/media/sda1/test of=/dev/null bs=1024
图 72
此处从test文件中一共读出200MByte的数据,可看到本次测试的U盘读速度为:200MB/6.09s=32.84MB/s。
本小节分别将评估板系统启动卡或者DDR内存模拟为存储盘,验证DEVICE模式功能。测试前请使用Micro USB数据线连接PC机与评估板DRD USB0接口。
评估板DRD USB0接口默认为HOST模式,请进入文件系统”/boot/”目录,将该目录下的tl437x-evm.dtb文件备份,再执行如下命令将tl437x-usb-device.dtb文件重命名为tl437x-evm.dtb。评估板重启后,DRD USB0接口即切换为DEVICE模式。
如需恢复为HOST模式,可将备份的文件重名为tl437x-evm.dtb,并重启评估板即可。
Target# cd /boot/
Target# cp tl437x-usb-device.dtb tl437x-evm.dtb
Target# reboot
图 73
执行如下命令将评估板系统启动卡BOOT分区模拟为存储盘。
Target# modprobe g_mass_storage file=/dev/mmcblk0p1 removable=1
图 74
“/dev/mmcblk0p1”是系统启动卡BOOT分区在评估板文件系统的挂载路径。在PC机中可看到识别到的可移动磁盘盘符,对该可移动磁盘的操作与普通U盘一样,如下图所示。
图 75
双击产品资料“4-软件资料\Tools\Windows\ATTO Disk Benchmarks V2.47_CN.exe”文件,弹出如下界面。选择磁盘(此处识别为I盘),选择32MB空间,然后点击“开始”按钮进行测试。此处盘符选择务必正确,否则可能会损坏所选磁盘数据。
图 76
等待5min左右测试完成,可在界面中看到0.5KB~8MB文件读写速度测试结果,如下图所示。
图 77
从上图结果可看到读速度最高约38MB/s,写速度最高约37MB/s,不同SD卡测试结果会有所不同。
重启评估板,进入文件系统后执行如下命令在DDR内存上建立一个50MByte大小的“/dev/shm/test”文件,并将DDR内存模拟为存储盘。
Target# dd if=/dev/zero of=/dev/shm/test bs=1M count=50
Target# modprobe g_mass_storage file=/dev/shm/test removable=1
图 78
此时可在PC中看到识别到的可移动磁盘盘符(此处识别为I盘),请格式化此盘符,如下图所示。
图 79
图 80
格式化完成后如下图所示,可像普通的U盘一样操作此磁盘。
图 81
双击产品资料“4-软件资料\Tools\Windows\ATTO Disk Benchmarks V2.47_CN.exe”文件,弹出如下界面。选择磁盘(此处识别为I盘),选择32MB空间,然后点击“开始”按钮进行测试。此处盘符选择务必正确,否则可能会损坏所选磁盘数据。
图 82
等待5min左右测试完成,可在界面中看到0.5KB~8MB文件读写速度测试结果,如下图所示。
图 83
从上图结果可看到读速度最高约38MB/s,写速度最高约37MB/s,不同存储介质测试结果会有所不同。