大致几百次重启后出现的崩溃,估计和擦写时重启有关,需要重新格式化。很难复现该故障。但总是偶尔的出现这种故障,挺烦人的,大家有无解决思路?
woodhead版本曾经总结过:
3、TFFS在操作过程中掉电会引起TFFS系统崩溃,是否有办法避免
答:可以修改sysTffs.c里面的函数sysTffsFormat的第4个参数vmAddressingLimit为0来避免绝大多数安全问题。
这个的原理是什么,woodhead能否解释一下?是否可行我待会试一试。谢谢!
谢谢版主解释的这么详细
我曾经复现过一次故障,然后单步跟踪,发现是在ftllite.c的mountFTL函数如下语句中,检测到某一个vol.pageTable[iPage]值为 UNASSIGNED_SECTOR(好像是第0页,iPage为0),从而返回flBadFormat退出,加载失败。
for (iPage = 0; iPage < vol.noOfPages; iPage++)
if (vol.pageTable[iPage] == UNASSIGNED_SECTOR)
{
DEBUG_PRINT((("#:Corrupted pageTable page%d found to be currupted, mount aborted\r\n"),iPage));
vol.badFormat = TRUE;
}
我格式化参数是直接映射范围默认为64K的,第0页的应该是采用直接映射的吧,而且恰好是FAT表的对应扇区?