程序如下: for(count=0;count<8192;count++)//每次寫512字節(jié),共寫入8192次,共4M字節(jié) { pCodeStr=spi_data_buffer;//指針地址指到512字節(jié)數(shù)據(jù)區(qū),數(shù)據(jù)來自spi接口的4Mflash for ( ch375_j_temp = 0; ch375_j_temp != 512; ch375_j_temp ++ ) { FILE_DATA_BUF[ch375_j_temp] = (*pCodeStr)+0x30 ;//ascii,把數(shù)據(jù)復制到FILE_DATA_BUF pCodeStr++; } SecCount = 1;//共寫入一個扇區(qū) mCmdParam.Write.mSectorCount = SecCount; /* 寫入所有扇區(qū)的數(shù)據(jù) */ ch375_i_temp = CH375FileWrite( ); /* 向文件寫入數(shù)據(jù) */ mStopIfError( ch375_i_temp ); } NewSize=(UINT32)512*count;//計算文件的總字節(jié)數(shù) spi_data_buffer[512]的數(shù)據(jù)是固定的數(shù)據(jù),如果每次都從flash讀取的話,還得加上總共4M字節(jié)的讀取時間,那估計的25分鐘,才能完成4M的數(shù)據(jù)寫入工作,如何才能提高速度呢?
查看: 2408
回復: 5
[求助]寫4M的數(shù)據(jù)居然花了18分鐘,怎么提高寫入的速度?
熱門產(chǎn)品 :
CH397: 高集成度、低功耗USB網(wǎng)卡芯片
cpu是mega128,晶振14.7456MHz,晶振已經(jīng)不能再提高了
把DISK_BASE_BUF_LEN由2048減小到1024,把FILE_DATA_BUF_LEN由512增加到1024后,寫4M固定數(shù)據(jù),花了9分鐘,還是有點慢呢
把FILE_DATA_BUF_LEN由1024增加到2048后,寫4M固定數(shù)據(jù),花了5分鐘
每次寫2048字節(jié)的時候,到1792之前都是正確的,1793是N,往后的255個字節(jié)是全是R,共256個字節(jié)的錯誤字節(jié),4M數(shù)據(jù)每2048個數(shù)據(jù)就是像上面那樣循環(huán)。奇怪,這是為什么呢?
上面的問題是由于沒有改變數(shù)組的首地址造成的,導致超過ram地址范圍了
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務您
只有登錄才能回復,可以選擇微信賬號登錄