最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】uboot load kernel/uImage之后,出现Bad Data CRC

工作和技术 crifan 3687浏览 0评论

【问题】

uboot 从nand flash里面读取kernel/uImage,一直都正常,但是拷贝到内存之后,最后的校验错误,出现Bad Data CRC,刚开始以为是kernel烧写的有问题。

但是用 nand dump 0x80000去查看nand 上的kernel,确认数据都是对的。

最后,通过用AXD debugger去加载uImage到内存里面:

load memoey from file 去加载到0x31000000 或者 lb uImage 0x31000000

然后再和uboot从nand中读取的kernel:

nand read 0x30007fc0 0x80000 0x200000

之后,用uboot的cmp命令去比较两者是否相等,结果都不一样:

cmp 30007fc0 31000000 180800
word at 0x30007fc0 (0x56190527) != word at 0x31000000 (0xe1a0f00e)
Total of 0 words were the same

终于搞清楚了,原来是我的uboot的版本不对,导致开始时候配置外部sdram的时候,配置错误,所以虽然uboot从nand中读取的kernel是对的,但是拷贝到内存中,数据就变了。

【解决办法】

重新编译了一个新版本的uboot,配置成32M 的和我当前使用板子匹配的uboot,这样SDRAM的配置就对了,uboot从nand中读取的kernel拷贝到内存中,数据也正常了,就可以正常工作了。

转载请注明:在路上 » 【已解决】uboot load kernel/uImage之后,出现Bad Data CRC

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.189 seconds, using 22.06MB memory