基于nandflash的fatfs系统读写文件的问题

2019-07-20 01:39发布

我是移植原子哥的f767的例程,是能够对nandflash进行读写文件。不过我设定存储文件的数量(假设限制10个文件),就是如果我存储的文件超过限制个数,就将最新的文件数据覆盖了最旧文件的数据,我测试做了三十多个文件时,就是覆盖了三次数据,就出现了存储不了文件,也读取不了文件,result=f_open(&fil,name1, FA_READ);fr=f_open(&fil,path, FA_CREATE_ALWAYS | FA_WRITE);两个的返回值都是1。然后只有复位了才能读取目录和文件,但是就是写不了文件,只有将它格式化后就可以了。格式化后重复执行这操作,继续存记录和覆盖数据还是会出现同样的问题。请各位大神和原子哥看看什么问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
尘埃星
2019-07-20 05:51
问题解决了,因为我是用ucosiii系统的,所以在存储文件时增加一个临界区函数,就是将所有中断都关闭了,存完之后再退出临界区就没问题。我用回原子板子使用的MT29f408型号,发现就算没加临界区这部分的程序,存储也是没问题了,不过存储过多的文件会有部分文件丢失没存成功,添加这个临界区函数就没问题了。不过在删除所有文件时,都是还会出现漏删的文件,重新再删就没了。

一周热门 更多>