本帖最后由 905324320 于 2016-10-12 15:27 编辑
我移植了mini板的文件系统到stm32f103c8t6上,flash用的是w25q64,能够实现文件的读写,但是速度很慢,写入文件每秒3~4k字节,下面是我的测试代码:
while(1)
{
if(WriteAddr < 4096)
{
x1 = micros();
f_write(ftemp,USART_RX_BUF,1024,&bw);
f_sync(ftemp);
WriteAddr = WriteAddr + 1024;
printf(" %d us
",micros() - x1);
}
}
通过串口得到的写入时间:
每写1K字节大约需要300ms,是什么问题导致写入速度这么慢?
@正点原子
修改数据要先对flash进行擦除,这个我知道的
我在初始上电时,先对整片flash进行了擦除,数据全部置为0xff,如果不带文件系统,对芯片进行顺序读写,数据吞吐量做到大几百K是没问题的。
带了文件系统,写操作完成后要对文件系统的目录信息进行更新,所以才需要修改flash上的数据,这样就加长了时间,我自己测试flash擦除4K需要60ms,
我想实现的功能是,在带文件系统的前提下实现对数据吞吐量能够达到10K/s,使用spi flash芯片是不是不能达到这个目标,nand flash 或者 sd卡是不是能够实现呢?
一周热门 更多>