bootloader---24.u-boot-2010.06-rc1移植之4saveenv

1. 重新开机启动
  1. U-Boot 2010.06-rc1 (Sep 10 2012 - 09:34:54)

  2. DRAM: 64 MiB
  3. Flash: 512 KiB
  4. NAND: 256 MiB
  5. *** Warning - bad CRC or NAND, using default environment

  6. In: serial
  7. Out: serial
  8. Err: serial
  9. Net: dm9000
  10. SMDK2410 # printenv
  11. bootdelay=3
  12. baudrate=115200
  13. ethaddr=08:00:3e:26:0a:5b
  14. ipaddr=192.168.4.251
  15. serverip=192.168.4.250
  16. netmask=255.255.255.0
  17. stdin=serial
  18. stdout=serial
  19. stderr=serial
  20. ethact=dm9000

  21. Environment size: 175/65532 bytes
  22. SMDK2410 # setenv ipaddr 192.168.4.253
  23. SMDK2410 # saveenv
  24. Saving Environment to NAND...
  25. Erasing Nand...
  26. Warning: Erase size 0x00010000 smaller than one erase block 0x00020000
  27.          Erasing 0x00020000 instead
  28. Erasing at 0x40000 -- 100% complete.
  29. Writing to Nand... done
这看似好像是成功了,但是重新开机之后,又出现 
Warning - bad CRC or NAND, using default environment
之前修改的环境变量没有保存,这是什么情况?

2.先判断是读出错还是写出错,因为己经可以进入uboot的命行行,可以利用里面的命令来进行判断.
   2.1 判断读是否出错: 
nand flash中从0-256存的是编译出来的u-boot.bin,可以显示出0x0-0x40000与u-boot.bin这个文件进行比较,如果不一样,则说明读出错.
  1. //a. 将nand中从0x40000-0x40000+0x100处的数据读到内存0x30000000处
  2. SMDK2410 # nand read 0x30000000 0x0 0x100 

  3. NAND read: device 0 offset 0x0, size 0x100
  4. 256 bytes read: OK
 //b. 按字节读取0x3000000,个数为0x100
  1. SMDK2410 # md.b 0x30000000 0x100

  2. 30000000: 12 00 00 ea 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5    ................
  3. 30000010: 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5    ................
  4. 30000020: 20 01 d8 33 80 01 d8 33 e0 01 d8 33 40 02 d8 33     ..3...3...3@..3
  5. 30000030: a0 02 d8 33 00 03 d8 33 60 03 d8 33 ef be ad de    ...3...3`..3....

  6. //c. 跟u-boot.bin比较一下
  7. root@ubuntu:~/uboot/u-boot-2010.06-rc1_hw# od -tx1 ./u-boot.bin | head

  8. 0000000 12 00 00 ea 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5
  9. 0000020 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5
  10. 0000040 20 01 d8 33 80 01 d8 33 e0 01 d8 33 40 02 d8 33
  11. 0000060 a0 02 d8 33 00 03 d8 33 60 03 d8 33 ef be ad de
  12. 数值一样说明读没有出错
2.2 验证写是否出错
  1. //a. 紧接上一步把0x30000000处的数据写到0x40000处
  2. SMDK2410 # nand write 0x30000000 0x40000 0x10000

  3. NAND write: device 0 offset 0x40000, size 0x10000
  4.  65536 bytes written: OK
  5. //b.从nand中把0x400000-0x40000+0x100处的数据读取到内存0x30000000
  6. SMDK2410 # nand read 0x30000000 0x400000 0x100

  1. NAND read: device 0 offset 0x400000, size 0x100
  2.  256 bytes read: OK
  3. //c. 显示内存0x3000000处的数据
  4. SMDK2410 # md.b 0x30000000 0x100
  5. 30000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  6. 30000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  7. 30000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  8. 30000030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  9. 30000040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  10. 30000050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  11. 30000060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
  12. 说明写有问题



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值