关于CH376拷贝U盘文件速度的测试比较
测试目的,实验在使用CH376对U盘内文件进行拷贝,测试拷贝速度。
实验条件,STM32103VC(内部64KRAM,256Kflash),72Mhz,SPI 18Mhz,CH376,测试文件:MODBUS.PDF, 文件大小366 KB
测试1:字节方式读写CH376ByteRead,CH376ByteWrite,RAM缓存大小char buf[640];
测试结果,完全复制完需要19S,平均速度为19KB/S,感觉不是一般的慢。
测试2:字节方式读写CH376ByteRead,CH376ByteWrite,RAM缓存大小char buf[6400];
测试结果,程序不能运行,究其原因,发现启动文件的设置:
startup_stm32f10x_hd.s设置
因为局部变量被分配在堆上,由启动文件设置可以看出其不能超过1024字节,所以当设置buf为6400时就出现错误了。
测试3:使用更大的buf,放在flash中,字节方式读写CH376ByteRead,CH376ByteWrite,缓存大小全局变量char buf[6400];
测试结果,完全复制完需要10S,平均速度为36.6KB/S
测试4:使用更大的buf,放在flash中,字节方式读写CH376ByteRead,CH376ByteWrite,缓存大小全局变量char buf[6400];//不能接近48K
测试结果,完全复制完需要10S,平均速度为36.6KB/S,居然与方法3相同,可见使用字节方式对于速度的提升使用更大的buffer不能提升速度了,因此在上述方法的基础上改用扇区方式读写进行测试
测试5:扇区方式读写CH376SecRead,CH376SecWrite,RAM缓存大小char buf[640];
测试结果,完全复制完需要好几分钟,不知道为什么比字节模式还慢
测试6:扇区方式读写CH376SecRead,CH376SecWrite,RAM缓存大小char buf[6400];将堆栈段改为0x2800,即10240,10KB
测试结果,完全复制完需要好几分钟,不知道为什么比字节模式还慢。
原因发现CH376SecRead开始都能读出100个扇区,但是明明还没读完就只能读出33个扇区了,以后都只能读出一个扇区了,所以异常的慢。
使用扇区方式读写时发现,每次读出100个扇区,开始的时候是正确的,后来就不对了,不到100个,但是显然源文件数据刚读取了一点点,就不正确了,这是为什么呢,一下是一段扇区方式读取文件的代码:
(CH376_DAT_BLOCK_LEN 为64,sizeof(buf)= 6400)
ByteCount = 0;
sec_num =sizeof(buf)/ DEF_SECTOR_SIZE; //一次可以处理的总扇区
do{
strcpy(SrcName, FILENAME);
s = CH376FileOpen(SrcName); /* 打开文件 */
if ( s != USB_INT_SUCCESS )
mStopIfError(s );
s = CH376SecLocate(ByteCount/CH376_DAT_BLOCK_LEN ); /* 以扇区为单位移动当前文件指针到上次复制结束位置 */
if ( s != USB_INT_SUCCESS )
mStopIfError( s );
//printf( "Reading...\r\n" );
s =CH376SecRead( buf, sec_num , &ThisSecLen );
if ( s != USB_INT_SUCCESS )
mStopIfError( s );
s = CH376FileClose(TRUE); /* 关闭文件 */
if ( s != USB_INT_SUCCESS )
mStopIfError( s );
ByteCount+= ThisSecLen*CH376_DAT_BLOCK_LEN; //已经读出的总字节
printf( "read ThisSecLen = %ld\r\n",ThisSecLen); //打印每次读出实际扇区数
printf("ByteCount=%ld,FileSize=%ld\r\n", ByteCount,FileSize ); //打印已经读出字节数与文件总数
}while(ByteCount<FileSize);
以及串口打印结果:
串口打印写入字节数
终于发现问题了,原来是把DEF_SECTOR_SIZE和CH376_DAT_BLOCK_LEN给搞错了,原来USB的扇区大小是512字节,而不是64字节,Ch376的buf大小才为64字节,改过来就OK了。
测试结果,完全复制完需要5S,平均速度为72KB/S,使用扇区的方式拷贝的速度大大提高了。
粗心大意害死人阿, 在以后做测试前最好把关键参数搞清楚,不要像这样走太大的弯路。
关于CH376拷贝U盘文件速度的测试比较相关推荐
- LINUX 下设置优盘挂载点,拷贝U盘文件
LINUX 下设置U盘挂载点,拷贝U盘文件 linux 下使用终端进行U盘内文件的拷贝 先将U盘插入电脑后,需要查看系统是否已经识别到存储设备,并获得设备的路径 需要进入root 用户下进行相关操作, ...
- 自动拷贝u盘文件 c语言,U盘自动读取软件
这是U盘自动读取软件,用来设置 U 盘自动运行项,插上 U 盘即可运行盘内文件.俗话说,任何事都有两面性,比如 Autorun.inf 自动运行文件. 软件功能 悄悄拷贝U盘文件到电脑文件夹! 1.自 ...
- linux命令行下读取u盘内容_Linux拷贝U盘文件(命令行)
Linux系统有的有界面,有的没有只要命令窗口,因此导入外部文件就变得困难,没有可视化的方便. 这里通过挂载u盘进行文件拷贝. 首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 s ...
- 偷偷自动拷贝U盘文件(按照原文件夹格式保存)实用
以前在学校上电脑课的时候总是馋老师U盘的身子,心想要是能把他里面的的课件拷贝下来就好了.不仅看得清楚还能省下拍PPT再抄到书上的麻烦,于是乎他来了. 这个拷贝软件打包以后可以完全静谧拷贝,不需要人工干 ...
- Linux拷贝U盘文件(命令行)
首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 sudo -i,获取root权限. 2.mkdir /usb //创建一个目录,用于挂载U盘 3.fdisk -l //查看系统中 ...
- c语言自动拷贝u盘文件,写了一个偷偷拷贝老师U盘所有文件的程序……蛋疼……………...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 直接双击运行,程序会每一秒检查一下是否有移动盘插入,如果有,就在C盘下新建一个文件夹copy,并把移动盘内所有的文件拷贝到C:\copy下.拷贝完成后自动 ...
- php读这文件速度,php 测试硬盘读写-php 测试硬盘写速率
使用php写入一个1GB大小的文件,检查硬盘的写速率,可能有一定误差, 建议还是使用专业的硬盘测试工具来检测 一般电脑读写在20M/s,这个测试要执行大概40-50s 仅供参考: set_time_l ...
- Linux1T大文件拷贝,U盘拷贝大于4G的iso文件时提示对于目标文件系统 文件过大解决方法全集...
[文章导读] U盘在我们日常使用过程中已经在广泛的使用了,很多人都喜欢拷贝文件,u盘传输速度上的是非常快的,但是有不少用户在使用U盘过程中遇到问题,u盘不能拷贝超过4G的大文件,提示" U盘 ...
- u盘往linux考文件过大,U盘拷贝时提示文件过大怎么办,教您如何解决
现在的高科技时代生活中,u盘的使用已经是许多从事电脑it行业的人每天都必须要用到的用具.但在u盘拷贝文件的过程中会一些奇怪的问题令人无法理解,最近,小编在使用u盘拷贝一个系统文件时却出现了文件过大的错 ...
最新文章
- java---实现闹钟的基本功能
- 异步消息的传递-回调机制
- MD5加密字符串并转化为base64(C#和PHP代码相同实现)
- 计算机核心配件是什么,计算机的核心是什么
- java引用类的关键字_java中定义类通常使用的关键字有哪些
- JavaScript全局变量的本质及页面共享问题
- 正则表达式(三)操作符的运算优先级、全部符号的解释
- Linux下安装gcc5.5
- web1:http协议简介和用netassist和py程序当http服务器
- 考研数据结构(3)笔记
- 薅羊毛第三十七次更新
- 计算机专业考研电路原理,2016年南开大学综合基础课(模拟电路、数字电路、计算机原理)考研试题.pdf...
- SSL 1203 书的复制
- MySQL数据库中数据完整性_MySQL数据完整性详细讲解及实现方式
- 基于ssm的个人博客系统的设计与实现(含源文件)
- yum安装软件时报错:Errors during downloading metadata for repository ‘AppStream‘的处理
- 看我拿下域控-cve2020-1472-Netlogon
- 21个有用的python工具
- opengl 画椭圆_漫谈椭圆的几何性质(之一)
- linux alc权限,Linux账号管理与ALC权限设定(二)
热门文章
- 世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”
- 软件安全实验(一)PEVIEW-弹窗操作
- 华为最近面试后要等多久才有消息?(有经验进)
- MySQL服务端的安装
- 软件测试:selenium自动化测试
- RT-Thread 使用FAL多字节读写FLASH
- 计算机专业工作紧张熬夜吗,性别:男,年龄:35,合肥,从事工作:计算机,性格内向,生活和工作压力大,人好紧张焦虑,前几年总是加.....
- 子网掩码及IP地址相关计算方法
- Android-MVP模式详解,一篇文章帮你解答
- python面向对象案例--买水果