最近我用STM32F4 + ucosIII +Fatfs,运行过程中会不定时的写文件到SST的FLASH里面,发现写入的速度很慢,debug后发现两个原因造成:
1. 我有一个250us的任务优先级最高,一直抢占fatfs的任务,
2. 发现FATFS一次写入1个字节跟写一个扇区的字节数的速度一样,单步进去后才知道FATFS 追加文件写入的时候,先把文件读出来,把要写的数据放到后面,然后
开始写,写的时候是先擦除这个扇区,然后写整个扇区的所有数据。然后再修改分区表,又是一个扇区的擦除和写入,这样造成写一个字跟写一个扇区的用时一样。
我测试了一下,如果打开250us的任务,写150个字的速度是800多ms,如果不打开250us的任务,写150个字的时间是70ms,跟写一个扇区的时间一样。
请问这两种情况下有没有优化方法,可以让写入的速度加快!!!!!!谢谢!!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
把需要更改的FAT, 以Block为单位, 先读到RAM, 修改完成后一次过写入Falsh
一周热门 更多>