废话不说,直奔主题
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异常。
创作不易,欢迎点赞、关注。--努力做一个善于发现并解决问题的人。