最近遇到这样的现象,就是系统启动的时候停住了,发现是eboot的TOC_Read函数调用VALID_TOC(g_pTOC)函数来判断(ptoc)->dwSignature的时候出错了,根据打印信息,(ptoc)->dwSignature=0xFFFFFFFF,正常情况下这个值是0x434F544E (表示NAND TOC)才对,而这之前是调用flash的read函数来从TOC的所在的block中读取的内容给g_pTOC,所以这个问题的根源就是MLC nand flash中保存TOC所在的块的页内容出错了,所以就导致了读取出来的(ptoc)->dwSignature=0xFFFFFFFF,对于这个问题产生的原因,想麻烦大家谈谈自己的理解和解决这个问题的思路与建议,先谢谢了。
------解决方案--------------------
应该是你的flash损坏了,或者是其他硬件原因引起读错误吧。烧写正常吗?你有改TOC结构体里的内容吗?