我用CH375但8M的数据写了3.5分钟(平均速度是39k/s),这样的速度是正常的吗?
1、不能说是否正常,只能说很慢了,因为与程序有关,关于速度,下载CH375EVT,参考CH375EVT.PDF中的“5.3. 单片机读写U盘” 2、详细说明一下单片机的类型、是否使用了子程序库及读写方式
我用的是S3c2410,使用子程序库进行读写,在扇区工作模式下。下面是源代码 while (1) { if (SecCount > (FILE_DATA_BUF_LEN >> 9)) { mCmdParam.Write.mSectorCount = (FILE_DATA_BUF_LEN / 512); /* 写入所有扇区的数据 */ } else { mCmdParam.Write.mSectorCount = SecCount; } for (i = 0; i < FILE_DATA_BUF_LEN; i++) {
FILE_DATA_BUF[i] = write_to_usb[(count - SecCount) *512+i]; } mCmdParam.WriteX.mDataBuffer = &FILE_DATA_BUF[0]; i = CH375FileWriteX(); /* 向文件写入数据 */ mStopIfError(i); SecCount -= FILE_DATA_BUF_LEN / 512; // Uart_Printf("SecCount=%d\n", SecCount); if (SecCount <= 0) { break; } if (CH375DiskStatus == DISK_DISCONNECT) { goto USBquit; }
}
顶上去
1、硬件接口是那种方式? 2、我们测试都是在总线方式,在以30K 大数据块读取5MB大文件时测得的,通常以读速度为衡量标准,每个U盘的Flash写延时不同,不能作为参考,测试一下读取速度是多少
另外这个段程序是做什么来使用的? for (i = 0; i < FILE_DATA_BUF_LEN; i++) {
FILE_DATA_BUF = write_to_usb[(count - SecCount) *512+i];//???? }
速度慢,优化一下对CH375端口读写函数,减小延时。 每次写的扇区数最好为16的整数倍。