0
点赞
收藏
分享

微信扫一扫

浅谈嵌入式系统EMMC测试的三种方法

王老师说 2022-04-20 阅读 71
linuxEMMC

废话不说,直奔主题

1、使用视频播放的方法

我们可以将大量的视频文件放置我们要测试的EMMC上,然后轮巡播放视频文件,看在特定条件下是否都能正确播放,从而验证EMMC是否正常。

优点:使用简单,消耗CPU和内存较低

缺点:仅实现读操作,不能验证速度,不能数字化比较数据

2、使用DD方法

DD是一个能够验证对可存储介质读写的一个软件,可使用在LINUX操作系统下,也可以使用在嵌入式操作系统中

(这也是本文重点推荐的一种方法)

这是我的测试脚本

function main_loop(){
	i=0
	while true
	do
		echo "`date +%T ` emmc read $i starting " | tee -a ./result.log
		dd if=/dev/mmcblk2p1 of=/home/root/test.bin bs=16k count=65536 conv=sync oflag=direct
		if [ $# -eq 0 ]
		then 
			echo "emmc read $i succesful " | tee -a ./result.log
		else
			echo "emmc read $i failure " | tee -a ./result.log
		fi
		sleep 10s
		echo "" 
		echo "`date +%T ` emmc write $i starting " | tee -a ./result.log
		dd if=/dev/zero of=/home/root/test.bin bs=16k count=65536 conv=sync oflag=direct
		if [ $# -eq 0 ]
		then
			echo "emmc write $i succesful " | tee -a ./result.log
		else
			echo "emmc write $i failure " | tee -a ./result.log
		fi
		sleep 10s
		echo "" 
		i=$((${i}+1))
	done
}

main_loop
执行情况如下:
10:31:58 emmc read 0 starting 
1024+0 records in
1024+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 1.34119 s, 50.0 MB/s
emmc read 0 succesful 

10:32:09 emmc write 0 starting 
65536+0 records in
65536+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 18.1547 s, 59.1 MB/s
emmc write 0 succesful 

10:32:37 emmc read 1 starting 
1024+0 records in
1024+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 1.74181 s, 38.5 MB/s
emmc read 1 succesful 

从上面的执行结果来看,这个脚本有几个功能:

①、可统计读写执行的次数;

②、可查看每次读写的速度数据;

③、针对每次读写执行的结果,能返回SUCCESSFUL,FAILURE

④、数据不但在终端实时显示,同时也可以保存到log文件,

⑤、可最后检查log文件,使用grep检索命令,直接查找是否有失败,失败多少次,不但可以记录,还可以实现完全自动化,最后在查看数据也是可以的。

优点:占用CPU不高,可对EMMC执行读写操作,也可验证速度;

确定:这个还不能作为对EMMC的极限压力测试,在性能数据上不能作为标准;

3、使用IOZONE

这个方法在这里不做详细赘述,有需要的可参看我的另外一篇文章,

嵌入式系统一次EMMC测试的体会及错误分析过程_Six-Classics-note-Me的博客-CSDN博客_emmc测试

优点:可对EMMC执行读写操作,也可验证速度,数据可保存为xls,查阅方便,同时可以作为验证EMMC极限压力的一种手段

缺点;占用CPU,内存较高,在常温下验证还可以,如果在高温下验证,强烈不建议,可能会导致EMMC异常。

创作不易,欢迎点赞、关注。--努力做一个善于发现并解决问题的人。

举报

相关推荐

0 条评论