以下内容已经在Iot-6ULX/EVB-6ULX平台上验证通过,Iot-6ULX/EVB-6ULX介绍如下:

dd emmc 测试匹配 emmc如何测试_嵌入式

dd emmc 测试匹配 emmc如何测试_根目录_02

 

2 Nand Flash读写测试

测试Nand Flash/eMMC的读写速度,主要用到dd指令。指令说明:

dd用于复制,用指定大小的块拷贝一个文件。从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。"if=/dev/zero"不产生IO,即可以不断输出数据,因此可以用来测试纯写速度。

2.1 Nand Flash写速度测试

Nand Flash根文件系统下包含了多个目录,我们需要选择其中的某个目录进行测试。可以执行以下指令查看根目录下包含的目录。

root@embfly ~# cd /

root@embfly /# pwd

root@embfly /# ls

dd emmc 测试匹配 emmc如何测试_dd emmc 测试匹配_03

                                                              根目录下的内容 

从上图中可以看到,根目录下包含了多个子目录。其中,root目录就是系统登陆时的默认所在目录(主目录)。在测试过程中,我们进入到root目录下进行测试。

root@embfly /# cd /root

root@embfly ~# pwd

dd emmc 测试匹配 emmc如何测试_linux_04

                                                             进入到root目录下

使用dd指令往root目录下写入数据,并生成largefile文件,文件大小为80 MiB,测试写速度。

root@embfly ~# dd if=/dev/zero of=./largefile bs=8k count=10240 conv=fdatasync

dd emmc 测试匹配 emmc如何测试_嵌入式硬件_05

                                                         Nand Flash写速度测试

从终端显示的信息中,写入的文件大小为80MiB,速度为36.2MB/s。

1.2.2 Nand Flash读速度测试

说明:因为Linux的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache内容可以增加文件的读写速度。

测试过程是为了能够测试出从Nand Flash中读取数据的准确速度,所以需要先清除缓存。

执行以下指令,清除缓存:

root@embfly ~# sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

dd emmc 测试匹配 emmc如何测试_linux_06

                                                                         清除缓存

再次使用dd指令读取前面用dd指令写入的largefile文件,测试读速度:

root@embfly ~# dd if=./largefile of=/dev/null bs=8k

dd emmc 测试匹配 emmc如何测试_linux_07

                                                       Nand Flash读速度测试

从终端显示的信息中,读取的文件大小为80MiB,速度为33.6MB/s。

测试完成后,用指令删除掉测试文件:

root@embfly ~# ls -alh largefile

root@embfly ~# rm largefile

dd emmc 测试匹配 emmc如何测试_嵌入式_08

                                                             删除测试文件