DM368在启动后,有时程序会停止在某处。
正常启动时,程序会在串口打印一系列信息。但是有时候,串口在某处打印信息后,就不在往下执行,即不在打印其他信息。
我们的硬件工程师认为是nand flash的坏块原因,即程序运行时遇到坏块,导致程序不往后执行。他建议进行nand flash的坏块检测。
但是在nand write已经对nand flash进行了坏块检测。
请问专家:
1、上述问题的原因是不是因为nand flash的坏块?或是其他原因?
2、如果是nand flash坏块的原因,如何做nand flash的坏块检测?
alvin lu:
如果还疑是坏块的问题,首先用nand scrub 进行修复,这个可以修复逻辑坏块,但不要常用。
如果是物理坏块不能修复,用nand write.e 进行烧写,用nand read.e 进行读取,这样就能跳过坏块,一般nand有坏块,是正常的。
如果你认为nand有坏块需要确认,那就进行简单的读写,看是否写进去的数据和读出来的数据一样。
看你的情况,应该是文件系统里面的一些脚本不能执行导致系统起不来,建议你弄个干净点的文件系统,不要开机启动N多东西。
你可以把你的出错信息贴出来,方便大家给出意见。
GreenTi liu:
回复 alvin lu:
我擦除了整个nandflash,发现了几个坏块。但是坏块都不在内核、文件系统存放的区域。
问题的原因还是程序问题,程序调用了msg_rcv,msg_snd,导致的阻塞。
alvin lu:
回复 GreenTi liu:
还是那句话,用不到的东西,不要塞文件系统里面。整理下吧。
TI中文支持网

