我用CH375但8M的數(shù)據(jù)寫(xiě)了3.5分鐘(平均速度是39k/s),這樣的速度是正常的嗎?
1、不能說(shuō)是否正常,只能說(shuō)很慢了,因?yàn)榕c程序有關(guān),關(guān)于速度,下載CH375EVT,參考CH375EVT.PDF中的“5.3. 單片機(jī)讀寫(xiě)U盤(pán)” 2、詳細(xì)說(shuō)明一下單片機(jī)的類(lèi)型、是否使用了子程序庫(kù)及讀寫(xiě)方式
我用的是S3c2410,使用子程序庫(kù)進(jìn)行讀寫(xiě),在扇區(qū)工作模式下。下面是源代碼 while (1) { if (SecCount > (FILE_DATA_BUF_LEN >> 9)) { mCmdParam.Write.mSectorCount = (FILE_DATA_BUF_LEN / 512); /* 寫(xiě)入所有扇區(qū)的數(shù)據(jù) */ } 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(); /* 向文件寫(xiě)入數(shù)據(jù) */ 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、我們測(cè)試都是在總線方式,在以30K 大數(shù)據(jù)塊讀取5MB大文件時(shí)測(cè)得的,通常以讀速度為衡量標(biāo)準(zhǔn),每個(gè)U盤(pán)的Flash寫(xiě)延時(shí)不同,不能作為參考,測(cè)試一下讀取速度是多少
另外這個(gè)段程序是做什么來(lái)使用的? for (i = 0; i < FILE_DATA_BUF_LEN; i++) {
FILE_DATA_BUF = write_to_usb[(count - SecCount) *512+i];//???? }
速度慢,優(yōu)化一下對(duì)CH375端口讀寫(xiě)函數(shù),減小延時(shí)。 每次寫(xiě)的扇區(qū)數(shù)最好為16的整數(shù)倍。