程序如下: for(count=0;count<8192;count++)//每次写512字节,共写入8192次,共4M字节 { pCodeStr=spi_data_buffer;//指针地址指到512字节数据区,数据来自spi接口的4Mflash for ( ch375_j_temp = 0; ch375_j_temp != 512; ch375_j_temp ++ ) { FILE_DATA_BUF[ch375_j_temp] = (*pCodeStr)+0x30 ;//ascii,把数据复制到FILE_DATA_BUF pCodeStr++; } SecCount = 1;//共写入一个扇区 mCmdParam.Write.mSectorCount = SecCount; /* 写入所有扇区的数据 */ ch375_i_temp = CH375FileWrite( ); /* 向文件写入数据 */ mStopIfError( ch375_i_temp ); } NewSize=(UINT32)512*count;//计算文件的总字节数 spi_data_buffer[512]的数据是固定的数据,如果每次都从flash读取的话,还得加上总共4M字节的读取时间,那估计的25分钟,才能完成4M的数据写入工作,如何才能提高速度呢?
查看: 2274
回复: 5
[求助]写4M的数据居然花了18分钟,怎么提高写入的速度?
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
cpu是mega128,晶振14.7456MHz,晶振已经不能再提高了
把DISK_BASE_BUF_LEN由2048减小到1024,把FILE_DATA_BUF_LEN由512增加到1024后,写4M固定数据,花了9分钟,还是有点慢呢
把FILE_DATA_BUF_LEN由1024增加到2048后,写4M固定数据,花了5分钟
每次写2048字节的时候,到1792之前都是正确的,1793是N,往后的255个字节是全是R,共256个字节的错误字节,4M数据每2048个数据就是像上面那样循环。奇怪,这是为什么呢?
上面的问题是由于没有改变数组的首地址造成的,导致超过ram地址范围了
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录