硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3181|回复: 6
收起左侧

[FatFs] norflash模拟U盘写太慢了,能改善么

[复制链接]

24

主题

133

回帖

205

积分

高级会员

积分
205
发表于 2023-8-7 20:54:43 来自手机 | 显示全部楼层 |阅读模式
用mcu外置的w25q128模拟U盘,通过pc机写文件,速度很慢,平均速度只有20KB—30KB。
mcu是华芯微特的34S,w25q时钟频率60M。扇区设的是4096,整个流程都是通的能读能写就是速度很慢。160个共5MB的jpg文件,写完约两分30秒。
查了一下资料,尝试把4096单扇区改为64kB,6数据刷新缓存同样为64KB,同时写刷新之前的擦除由单扇区改为64KB单次擦除。
但结果好像是更卡了。有时候能写进去有时候写不了,4096是很正常的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2023-8-8 10:20:25 | 显示全部楼层
1、修改下簇大小试试。
2、你这个是不是已经包含了擦除时间了,包含了擦除就是很慢。首次使用可以考虑先整片擦除好,然后底层接口每次写入先判断是否已经擦除好的,擦除好的就不用再重复擦除了,效率高不少。
回复

使用道具 举报

2

主题

58

回帖

64

积分

初级会员

积分
64
发表于 2023-8-22 21:13:35 | 显示全部楼层
你是用的SFC接口吗?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-1-28 19:47:42 | 显示全部楼层
只要是需要擦除就是慢
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-9-2 12:34:59 | 显示全部楼层
eric2013 发表于 2023-8-8 10:20
1、修改下簇大小试试。
2、你这个是不是已经包含了擦除时间了,包含了擦除就是很慢。首次使用可以考虑先整 ...

用SPI Flash来挂载FATFS感觉太难优化了,尝试用spi_flash.c中的优化写入函数sf_WriteBuffer(uint8_t* _pBuf, uint32_t _uiWriteAddr, uint16_t _usWriteSize),感觉都是负优化。
1.创建文件写入一个字节'A'(或一段内容),FATFS会调用4KB扇区整体写入而不是有效内容部分,关键在于,4KB扇区的其余部分被FATFs改成了全0,这样第一次对擦除的扇区写是有一次优化:
读扇区,sf_AutoWriteSector比较不等,sf_NeedErase比较不用擦,直接写一个扇区。

2.但是,后续追加写入时,比如追加'B'(文件内容变为“AB"),此时读取上次写的扇区,B位置(以及以后位置)都已经是0了,这样,读扇区比较不等,sf_NeedErase比较肯定需要擦,然后擦,写。还包含一次目录区的擦(原因一样)和写,因为文件大小信息改了。

3.后续追加,直到本扇区满为止,任何写操作都是需要擦,也就是追加任何小内容都必须至少擦写两次扇区 。

有没有办法修改FATFS底层那里,将文件未写区域初始化成0xFF,或者不初始化按扇区擦除后原始读出内容。否则这些比较是否相符,是否可以不擦除等操作都是白做,负优化很厉害,还不如每次FATFS每次调用都无脑擦扇区,写扇区来的快。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2024-9-3 01:03:57 | 显示全部楼层
人生之际 发表于 2024-9-2 12:34
用SPI Flash来挂载FATFS感觉太难优化了,尝试用spi_flash.c中的优化写入函数sf_WriteBuffer(uint8_t* _pB ...

SPI Flash还是得搞个擦写均衡才好使。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-12-26 22:54:18 | 显示全部楼层
人生之际 发表于 2024-9-2 12:34
用SPI Flash来挂载FATFS感觉太难优化了,尝试用spi_flash.c中的优化写入函数sf_WriteBuffer(uint8_t* _pB ...

那不如修改spiflash读写底层,把数据直接取反…
flash擦写次数有限…看看规格书flash的擦除时间确实是慢
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 01:49 , Processed in 0.387756 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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