ARM板子启动出现:crc error-- System halted

NAND read: device 0 offset 0x40000, size 0x800000

Reading data from 0x83fe00 -- 100% complete.
 8388608 bytes read: OK
Boot with zImage

Starting kernel ...

Uncompressing Linux...............................................................................................................................................................................................

crc error

 -- System halted

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

ARM板子启动出现如上错误,求解释。



在网上找到一个回答如下:

内核代码我没有修改过,怎么会出现这么个错误呢,这个问题苦闷了我很久。
后来看到一位网友的博客,给了我提示,是不是cpu的频率太高了呢。立马我就在uboot中把cpu的频率降到100MHz(以前是304MHz),这样重新编译后就好了。下载内核上去运行也不再有crc error了。很高兴。

我这边有几块一样的板子,有几块可以正常启动,有几块跑到上面的CRC就死掉了。

于是,将好的板子的Nand Flash和坏版进行调换,发现坏版是可以跑的很正常,说明

是我们某些板子在硬件的某个地方可能有所谓的"死角"。


仍在查找中。。。




最后发现是板子上面: 少贴了一个电阻。

O(∩_∩)O哈哈~

 

以前在做嵌入式开发的时候,有的板子在内核启动初期不稳定,在自解压时就出错情形如下:

  1. Starting kernel ...
  2. Uncompressing Linux........................................................................................................................
  3. crc error

  1. Starting kernel ...

    Uncompressing Linux...............

    incomplete literal tree

在uboot下测试内存都没有什么问题,但是一上内核就死在自解压上。

最后究其原因是内存问题:
   (1)内存与CPU见的走线设计不好。
   (2)CPU不支持ODT或者DDR2内存芯片没有ODT,且硬件设计没有加匹配电阻。
   (3)在硬件不稳的情况下,内存频率配置过高。
   (4)超频使用

  以上的问题都可以通过 降频尝试解决。但是如果是硬件设计问题,改善走线才是最终解决方法。有ODT支持的话,尽量开启,可以减少信号反射,保持信号完整性。
   有些内存控制器的配置比较复杂,需要板级相关的参数,比如Ti8168芯片
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值