各位大佬,
小弟手头有一块evm板,出现了一个问题,之前还能启动,但后来就不能启动了。串口只打印了一句话
“
Boot SPL 2013.01.01 (Feb 16 2017 – 17:41:41)
”
之后,就宕机了,最初的处理方式是重新烧写一下SPL就解决了。后来又出现了,然后我就没再重新烧写,而是怀疑是否是flash里的数据坏了,但不应该啊,因为数据在第一个块,第一个块是不应该坏的哦,然后我就怀着好奇的心先用SD卡启动,在uboot下把第一个块里的内容读了出来,然后与烧写的镜像一对比,发现两者一模一样。然后我就把nandflash中的MLO先读到内存中,然后将第一块擦除,再将内存中的数据重新写回去,竟然可以从nandflash启动了,竟然启动了!
小弟实在想不通这中间的缘由,有哪位大佬能解惑么?谢谢啦先。
Denny%20Yang99373:
启动失败的时候单步跟踪调试一下,可以把符号表load进去,看看卡在哪儿了。
xiaoping zhang:
回复 Denny%20Yang99373:
Denny Yang启动失败的时候单步跟踪调试一下,可以把符号表load进去,看看卡在哪儿了。
出现问题的地方,调试不到吧,或者说我并不知道这个地方该怎么调试。
xiaoping zhang:
回复 xiaoping zhang:
xiaoping zhang
Denny Yang
启动失败的时候单步跟踪调试一下,可以把符号表load进去,看看卡在哪儿了。出现问题的地方,调试不到吧,或者说我并不知道这个地方该怎么调试。
Shine:
回复 xiaoping zhang:
用仿真器跟踪SPL代码的执行情况,可以参考下面的文档。
www.ti.com.cn/…/zhca539.pdfxiaoping zhang:
回复 Shine:
Shine Zhang用仿真器跟踪SPL代码的执行情况,可以参考下面的文档。
好的,今天我试一试(๑><๑)
xiaoping zhang:
回复 Shine:
汇报一下最新情况:仿真是没卡的,可以正常跑过去。但回头用nandflash启动,仍然无法启动。这就比较尴尬了!
重新捋一下问题的特点?
第一:这个MLO一直是可以用的;
第二:将这个MLO从第一个块里读出来,再写回去就可以了,没有做任何改变;
第三:能正常启动时,一直都可以正常启动,一旦出现了不能正常启动,除非重新写一下第一个nand块,否则永远不能启动;
第四:重新烧写之后,又可以正常使用一段时间。
第一第二点说明软件是没有问题的,第三第四点说明硬件好像也没什么问题。那么问题在哪里呢?
这是不是可以猜测,nand flash启动,或程序运行中的某个诱因,触发了CPU或硬件中某个状态位,而且该位不随断电而复位而使板子无法启动,但是擦除或写第一个块会解除该状态位,使得板子又可以启动呢?
xiaoping zhang:
回复 xiaoping zhang:
有没有其他小伙伴们遇到类似的情况呢?
xiaoping zhang:
回复 xiaoping zhang:
又出现了,::>_<::
TI中文支持网
