[X]关闭

tf卡压力测试

文档创建者:ぉ沙皮狗的忧伤
浏览次数:5115
最后更新:2021-03-12
本帖最后由 ぉ沙皮狗的忧伤 于 2021-3-15 17:38 编辑

一、将启动方式改flash启动,并将文件系统存放至emmc中
1、烧录程序到flash中
2、emmc中创建分区
使用fdisk打开emmc设备,在我这里emmc在dev下面的设备名是mmcblk0,而tf卡在dev下面的设备名是mmcblk1
截图202103151537424519..png
在命令行输入fdisk /dev/mmcblk0
截图202103151538196357..png
  1. a    可启动标志的切换
  2. b    编辑“bsd disklabel”
  3. c    切换dos兼容性标志
  4. d    删除分区
  5. l    列出已知的分区类型
  6. n    添加新的分区
  7. o    创建一个新的空DOS分区表
  8. p    打印分区表
  9. q    退出,不保存更改
  10. s    创建一个新的空的Sun disklabel
  11. t    不要更改分区的系统id
  12. u    改变显示/进入单位
  13. v    检查分区表
  14. w    将表写入磁盘并退出
  15. x    额外的功能(仅限专家)
复制代码


先去打印分区表,创建一个大小2G的分区和一个6G分区,完成创建之后w保存
截图202103151542295404..png
若想删除分区输入d就行,选择分区号,然后保存w
截图202103151544309318..png

创建的那两个分区就出现了,p1分区存放boot包,p2分区存放文件系统
截图202103151545189980..png
boot分区p1格式化成fat32格式,文件系统分区格式化成ext4分区
截图202103151634204008..png

挂载/dev/mmcblk0p2分区到/mnt目录在
截图202103151638119220..png
拷贝tf的boot分区中的rootfs.tar.gz到emmc的第二个分区中,并解压
截图202103151641467898..png
断电,在boot界面倒计时进入boot菜单,烧录boot包到QSPI中
截图202103151646191098..png
断电,拔出SD卡,将启动拨码开关拨到QSPI启动,在上电,在boot界面倒计时是敲回车进入boot菜单,按“q”进入命令行,
截图202103151658378800..png

输入pri打印环境变量,在其中找到加载文件系统的方式,先找到qspiboot在其中找到mmc_rootfs_args,在mmc_rootfs_args中找到加载root的地方

截图202103151701458443..png
由于我们的文件系统放在/dev/mmcblk0p2的分区中,所有要在环境变量里面对其进行修改,set修改后使用saveenv保存,使用pri打印一下并确认

断电重启

二、编写测试脚本
1、先将tf卡格式化成ext4格式,因为我们板卡无法判断tf卡是mmcblk0设备还是mmcblk1设备,所有我们在脚本里面手动指定,剩下的可以仔细看脚本
  1. #!/bin/sh
  2. #手动指定
  3. SD_name=/dev/mmcblk1p1
  4. SD_file=1.txt
  5. #获取SD卡大小
  6. SD_size=`df -h | grep $SD_name | awk '{print $2}' | awk -F"." '{print $1}'`
  7. #获取挂载文件宮录
  8. mount_file=`mount | grep $SD_name | awk '{print $3}'`
  9. while [ "1" == "1" ]
  10. do
  11.         #新建指定大小的文件
  12.         truncate -s 1000M $SD_file
  13.         #测试读写速度
  14.         touch $mount_file/abc.txt
  15.         echo "write speed test"
  16.         #date
  17.         sync
  18.         time dd bs=1M count=1000 if=/dev/zero of=$mount_file/abc.txt
  19.         echo "read speed test"
  20.         echo 3 > /proc/sys/vm/drop_caches
  21.         #date
  22.         sync
  23.         time dd bs=1M count=1000 of=/dev/zero if=$mount_file/abc.txt
  24.         rm $mount_file/abc.txt
  25.         echo 3 > /proc/sys/vm/drop_caches
  26.         echo write file
  27.         #从SD卡读写文件,查看是否出错
  28.         #每次拷贝大小为1G的数据到SD卡中,例如16G的SD卡就考16次
  29.         for i in `seq 1 $SD_size`
  30.         do
  31.                 cp ./1.txt $mount_file/$i.txt
  32.                 echo write $i.txt
  33.                 echo 3 > /proc/sys/vm/drop_caches
  34.                                 sync                                                               
  35.         done                                 
  36.                                              
  37.         echo read file                                             
  38.         #将SD卡中的数据读出来                                       
  39.         for i in `seq 1 $SD_size`                                   
  40.         do                                                         
  41.                 mv  $mount_file/$i.txt ./
  42.                 echo read $i.txt         
  43.                                                   
  44.                 echo 3 > /proc/sys/vm/drop_caches                        
  45.                                                                                    
  46.                 rm ./*.txt                                                         
  47.                 sync                                                               
  48.         done                                    
  49.                                                 
  50.         sleep 3                                 
  51. done                           
复制代码

三、执行脚本并测试  由于为了更方便演示,故测试大小有1000M改为100M
  使用dd测试读写速度,先判断tf卡实际内存大小,创建一个大小1000M的1.txt文件,例如16Gtf卡,实际内存大小是14.6G,故将1.txt拷贝14次到tf卡中,在读出来,并查看内核是否出现系统性的错误,若想做的更准确,则只需要在拷贝1.txt到tf卡之前记录一下md5值,拷过去读出来,对比md5值是否一致,不一致读写出错,可以私聊我,底下交流交流

截图202103151711191226..png

代码在附件中

SD_test.tar.gz

843 Bytes, 下载次数: 237

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则