错误信息:

NAND read: device 0 offset 0xa0000, size 0x200000

 2097152 bytes read: error
## Booting kernel from Legacy Image at 72000000 ...
   Image Name:   Linux-2.6.30
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1939156 Bytes =  1.8 MB
   Load Address: 70008000
   Entry Point:  70008000
   Verifying Checksum ... Bad CRC or data

Error: Can't get kernel image!

造成这个错误的原因可能有许多,在这儿只是说明下我的这个问题是如何解决的。

我在烧写uImage的时候就感觉有点问题,烧写的的块数比以前多一个,也就是说我烧写的内核地址可能刚好碰到了一个坏块,然后在烧写的时候就自动跳过坏块。在uboot里使用命令“help nand”可以看到各种关于nandflash的各种命令,使用“nand bad”命令可以查看nandflash所有的坏块。我的那个nandflash有烧写内核的地方果然有一个坏块。

发现这个坏块后,使用“nand scrub”命令强制擦除坏块,uboot之类的也随之被擦除了。

重新烧写所有的东西,一切正常!至于具体的原因有待进一步了解!


**************************************************************************************************

工作中也遇到过类似的事情,其他几台机器烧录没有问题,就是某一台烧录异常或者烧录成功但是机器启动的时候显示加载失败,那个时候屏幕会有显示的,例如,提示0X00800023***块异常等。

针对烧录异常的话,我没有按照上面说的自己处理,而是丢给硬件叫他们跟我换个片子(后来同事又借过来使用软件处理,未成功;而且当时赶忙,也没想过修复,O(∩_∩)O~)

至于启动异常的,重新烧录又好了,但是串口连的时候打印信息里面显示 确实还存在坏块,但是不影响使用,也就没管了。

Logo

更多推荐