OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8898|回复: 8

STM32 对flash使用文件系统写入速度慢

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-3-31
在线时间
15 小时
发表于 2016-10-12 15:25:33 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 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\r\n",micros() - x1);
    }
}
通过串口得到的写入时间:
   写入时间.png
每写1K字节大约需要300ms,是什么问题导致写入速度这么慢?
@正点原子


最佳答案

查看完整内容[请看2#楼]

去看一下spi flash的擦除速度就知道为什么这么慢了!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-10-12 15:25:34 | 显示全部楼层
去看一下spi flash的擦除速度就知道为什么这么慢了!
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-12 17:59:38 | 显示全部楼层
flash都是要擦除的,用flash修改数据速度很慢的
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-3-31
在线时间
15 小时
 楼主| 发表于 2016-10-13 14:14:44 | 显示全部楼层
憨厚诚实大叔 发表于 2016-10-12 17:59
flash都是要擦除的,用flash修改数据速度很慢的

spi flash 使用文件系统每次写操作都要进行擦除吗?
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-3-31
在线时间
15 小时
 楼主| 发表于 2016-10-13 14:15:04 | 显示全部楼层
本帖最后由 905324320 于 2016-10-13 14:19 编辑
憨厚诚实大叔 发表于 2016-10-12 17:59
flash都是要擦除的,用flash修改数据速度很慢的

spi flash 使用文件系统每次写操作都要进行擦除吗?@正点原子 @正点原子
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-13 15:07:24 | 显示全部楼层
905324320 发表于 2016-10-13 14:15
spi flash 使用文件系统每次写操作都要进行擦除吗?@正点原子 @正点原子

flash你用不用文件系统,修改数据都要擦除,百度下flash就知道了
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-3-31
在线时间
15 小时
 楼主| 发表于 2016-10-13 15:30:01 | 显示全部楼层
憨厚诚实大叔 发表于 2016-10-13 15:07
flash你用不用文件系统,修改数据都要擦除,百度下flash就知道了

修改数据要先对flash进行擦除,这个我知道的
我在初始上电时,先对整片flash进行了擦除,数据全部置为0xff,如果不带文件系统,对芯片进行顺序读写,数据吞吐量做到大几百K是没问题的。
带了文件系统,写操作完成后要对文件系统的目录信息进行更新,所以才需要修改flash上的数据,这样就加长了时间,我自己测试flash擦除4K需要60ms,
我想实现的功能是,在带文件系统的前提下实现对数据吞吐量能够达到10K/s,使用spi flash芯片是不是不能达到这个目标,nand flash 或者 sd卡是不是能够实现呢?
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-13 15:43:25 | 显示全部楼层
905324320 发表于 2016-10-13 15:30
修改数据要先对flash进行擦除,这个我知道的
我在初始上电时,先对整片flash进行了擦除,数据全部置为0x ...

具体没试过,如果每次上电都擦除过的话,别照搬原子的写函数,自己写一个针对上电擦除过的,应该是可能达到的
回复

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-12-15
在线时间
14 小时
发表于 2017-2-27 19:12:34 | 显示全部楼层
我用32F103CBT6I驱动W25q64,通过USB用电脑对其写入数据,速度能达到40-45KB/s。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-23 19:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表