终于解决掉DJYOS里文件系统fwrite一个严重的bug

      花了将近两周的时间,终于搞定了DJYFS里fwrite接口写入的数据小于一块(nand的一块大小)。循环测试fwrite,每次写入小于一个block,满足一定的条件就会出现文件系统崩溃的bug。这个bug隐藏的太深了。具体是:假如连续写入100次,这100次数据总和,是一个block的整数倍。那么,写入的数据就是整数倍块。平时,如果数据不是整数倍,就算是一个字节,也会申请文件的下一块。现在因为剩下的是0字节,没有给被写入的文件分配下一个存储的位置。造成,后面写入数据的时候,不知道写到哪里,就乱写。出现MAT表混乱,文件系统在存储器上的数据被破坏,造成文件系统崩溃。

      终于搞定这个问题,松了口气!

你可能感兴趣的:(DJYOS)