一种VerifyingChecksumBadDataCRC的解决办法 crc verifying


现场情况:来自于梦行智科
[FriendlyLEG-TINY210]#tftpboot0x20008000uImage
dm9000i/o:0x88001000,id:0x90000a46
DM9000:runningin16bitmode
MAC:00:e0:4d:6c:5b:1c
operatingat100Mfullduplexmode
Usingdm9000device
TFTPfromserver192.168.1.7;ourIPaddressis192.168.1.9
Filename'uImage'.
Loadaddress:0x20008000
Loading:TT#################################################################
######
done
Bytestransferred=1031215 (fbc2fhex)
[FriendlyLEG-TINY210]#bootm0x20008000
##BootingkernelfromLegacyImageat20008000...
ImageName:Linux-2.6.38.5
Created:2013-07-2111:14:43UTC
ImageType:ARMLinuxKernelImage(uncompressed)
DataSize:1027992Bytes=1003.9KiB
LoadAddress:20008000
EntryPoint:20008000
VerifyingChecksum...BadDataCRC
ERROR:can’tgetkernelimage!
网上也查了好多人的说法,先对别人的做个总结

1内核实际大小超过了bootcmd所指定大小,uboot只会去读指定大小到内存中运行,就会校验失败了,把bootcmd改大一点

2 uImage在传输中丢了数据,
像我的 Bytes transferred = 1031215 (fbc2fhex),但DataSize: 1027992Bytes = 1003.9 KiB

3 内核和其他代码地址重叠,被覆盖了

而我的情况不太一样,分析如下:
image名字,编译时间,大小,加载地址,入口点这些基本信息已经识别出来了,既然这样,有数据校验错误,那就排除了编译的错误,错误原因应该是image生成和存储时的问题。
在一次次制作image,再ftp传到开发板对比过程中,我发现了一点,如下图(图只是示例):

因为文件是放在指定目录里,每次都会提示覆盖,我注意到了一点,就是每一次的提示源文件 和目标文件大小都不一样。
有时候我重新编译,文件是可能不一样,有时候我只是重传文件,但大小还是不一样。我就专门试了一次,同一份文件传了两次,大小果然不一样,这就有问题了,我仔细检查ftp传输设置,在其中有一项,如下图:

文件传输类型,把没有扩展名的文件作为 ASCII格式文件对待,编译后的image是二进制文件,并不是ASCII,设置之后再传文件大小就一致了。
结果:

[FriendlyLEG-TINY210]#tftpboot0x20800000uImage
dm9000i/o:0x88001000,id:0x90000a46
DM9000:runningin16bitmode
MAC:00:e0:4d:6c:5b:1c
operatingat100Mfullduplexmode
Usingdm9000device
TFTPfromserver192.168.1.7;ourIPaddressis192.168.1.9
Filename'uImage'.
Loadaddress:0x20800000
Loading:TT#################################################################
######
done
Bytestransferred=1028056 (fafd8hex)
[FriendlyLEG-TINY210]#bootm0x20800000
##BootingkernelfromLegacyImageat20800000...
ImageName:Linux-2.6.38.5
Created:2013-07-2112:03:01UTC
ImageType:ARMLinuxKernelImage(uncompressed)
DataSize:1027992Bytes=1003.9KiB
LoadAddress:20008000
EntryPoint:20008000
VerifyingChecksum...OK
LoadingKernelImage...OK
OK

Startingkernel...
总结:
文件的校验并不一定是程序的错误,还有可能是文件传输过程中的问题。

附查找问题中解决片段:

我之间一直以为是arm-linux-mkimage生成image的问题,这个工具是我自己找到,因为工具链中没有,我换了好几个,为了一致,记下这个命令吧:
sudoapt-getinstalluboot-mkimage

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/234453.html

更多阅读

电脑桌面一刷新就闪屏的解决办法 win7桌面闪屏怎么解决

  闪屏一般指电脑显示器上的显示问题,电脑在运行过程中,屏幕画面出现闪烁或不规则闪动,有时会出现横条线和竖条线。闪屏和雪花屏主要是显卡的问题造成的,雪花屏类似电视的雪花屏,闪屏就像显卡驱动有问题那样,画面完整,但眼睛看着极为不舒

u盘无法格式化的解决办法 精 u盘无法格式化

u盘无法格式化的解决办法 精——简介U盘无法格式化怎么办?导致U盘无法实现格式化的原因是多方面的,而解决该问题的办法是利用多种方法来尝试解决。本经验将教大家具体的操作方法,由浅入深、一步一步完成U盘的修复操作,希望对大家有所帮

错误代码691一种特例的解决方法 greenvpn错误代码691

错误代码691一种特例的解决方法——简介某些朋友可能会遇到这样一个问题,一个宽带帐号和密码,在一台电脑(1)上能够正常的通过pppoe拨号连上网,而换了一台电脑(2)后,还是相同的帐号和密码,却始终显示错误代码691,通过重装系统是解决不了这样的

蓝屏代码0X0000007B的解决办法 0x0000007b解决方案

蓝屏代码0X0000007B的解决办法——简介拿到一台华硕的笔记本电脑,在安装系统的时候不管你怎么搞都是蓝屏,开始还以为是硬盘坏了呢?最后了解是因为硬盘接口设置问题。下面来演示下怎么解决这一问题。蓝屏代码0X0

声明:《一种VerifyingChecksumBadDataCRC的解决办法 crc verifying》为网友寻她人分享!如侵犯到您的合法权益请联系我们删除