这玩意不好焊.
离线
copy_random_file_to_sdnand(){
dd if=/dev/urandom of=random.bin bs=1MiB count=32 > /dev/null 2>&1
CRC32_1=`crc32 random.bin`
cp random.bin /media/whycan/A87B-A154
sync
CRC32_2=`crc32 /media/whycan/A87B-A154/random.bin`
if [ "$CRC32_1" = "$CRC32_2" ]; then
#echo "OK"
return 0
else
#echo "Failure"
return -1
fi
}
success=0
fail=0
while true
do
copy_random_file_to_sdnand
if [ $? = 0 ]; then
((success++))
else
((fail++))
fi
echo "success = " $success ", fail=" $fail
done
写了一个简单的脚本, 产生一个32M的随机数文件, cp 写入 sd nand 的文件系统,
分别读出源文件和sd nand 的文件的CRC32校验码,
分别列出成功和失败的次数.
明早看下测试结果.
以下是 2019-10-06 更新:
---------------------------------------------------------
success = 100325 , fail= 0
success = 100326 , fail= 0
success = 100327 , fail= 0
经过国庆7天连续测试, 终于满10万了.
实验结果:
随机生成32M文件, 写入并读取比较 CRC32 校验码, 10万次均成功.
离线
success = 5151 , fail= 0
success = 5152 , fail= 0
success = 5153 , fail= 0
感觉进度慢, 可能是随机数的产生速度引起的.
算了一下, 一分钟才只能测10次
以下是 2019-10-02 更新
---------------------------------------------------------
success = 31864 , fail= 0
success = 31865 , fail= 0
success = 31866 , fail= 0
以下是 2019-10-05 更新:
---------------------------------------------------------
success = 82771 , fail= 0
success = 82772 , fail= 0
success = 82773 , fail= 0
以下是 2019-10-06 更新:
---------------------------------------------------------
success = 100325 , fail= 0
success = 100326 , fail= 0
success = 100327 , fail= 0
经过国庆7天连续测试, 终于满10万了.
离线
#!/bin/bash
dump_random_file_to_sdnand_and_compare(){
echo "正在生成随机数文件:"
dd if=/dev/urandom of=random.bin bs=1MiB count=45 status=progress ### > /dev/null 2>&1
echo "正在写入SD NAND:"
CRC32_1=`crc32 random.bin`
dd if=random.bin of=/dev/sdb bs=1MiB count=45 status=progress ### > /dev/null 2>&1
### read back ###
echo "正在从sd nand 读回:"
dd if=/dev/sdb of=random_read.bin bs=1MiB count=45 status=progress ### > /dev/null 2>&1
CRC32_2=`crc32 random_read.bin`
if [ "$CRC32_1" = "$CRC32_2" ]; then
echo "比较结果: 与写入一致,正在进行下一次测试"
return 0
else
#echo "Failure"
echo "比较结果: 与写入不一致"
return -1
fi
}
success=0
fail=0
while true
do
dump_random_file_to_sdnand_and_compare
if [ $? = 0 ]; then
((success++))
else
((fail++))
fi
echo "成功 " $success "次, 失败 " $fail "次"
if [ $fail -gt 2000 ]; then
exit 0;
fi
done
继上面的文件系统cp测试之后, 接着直接读写sd nand 测试.
每次写入/读取 45MB 数据, 暴力测试.
以下 2019-10-07 18:40:00 更新:
------------------------------------------
正在生成随机数文件:
45+0 records in
45+0 records out
47185920 bytes (47 MB, 45 MiB) copied, 0.364236 s, 130 MB/s
正在写入SD NAND:
47185920 bytes (47 MB, 45 MiB) copied, 5 s, 9.2 MB/s
45+0 records in
45+0 records out
47185920 bytes (47 MB, 45 MiB) copied, 5.11304 s, 9.2 MB/s
正在从sd nand 读回:
45+0 records in
45+0 records out
47185920 bytes (47 MB, 45 MiB) copied, 0.2067 s, 228 MB/s
比较结果: 与写入一致,正在进行下一次测试
成功 19867 次, 失败 0 次
离线