天嵌 ARM开发社区

 找回密码
 注册
查看: 3367|回复: 0

u-boot永远把环境变量所在区域标记为坏块

[复制链接]
demonguy 发表于 2014-10-29 23:42:29 | 显示全部楼层 |阅读模式
本帖最后由 demonguy 于 2014-10-30 15:26 编辑

我想自己开发一个u-boot上的nand flash 驱动,目前测试读写似乎都挺正常,就是在坏块标记非常有问题,概括起来应该是,擦除之后一个坏块都没有,但是只要往任何一个block写数据, nand dump出来之后数据都是对的,但是一旦重启,这个被写过数据的块就会被u-boot标记为坏块,不知道为啥
我做了以下步骤:




  • 擦除整个nand(是用我自己的代码擦除的,并且没有发现坏块)..........启动u-boot, 提示  "bad CRC ,using default environment".
  • 然后我调用saveenv命令,没啥问题
  • 这个时候使用nand bad, 没有任何坏块
  • 重启开发板
  • 这时候提示 "readenv() failed, using default environment".
  • nand bad 命令显示, 正好在我设置的  "CONFIG_ENV_OFFSET" 这个地址上的块成为了坏块
  • 然后我就修改了一下CONFIG_ENV_OFFSET的值,发现无论修改什么值,重复上面几个步骤,最后都会被u-boot标记为坏块

当然,在做这些实验之前,我也测试了一下nand的读写是否正常
  • 擦除后,执行 nand dump 0, 显示都是0xff,一切正常
  • "nand write 20000000 0 800"  将 0x20000000内存中的 2048个字节写入nand 块0里
  • 然后 "nand dump 0",读出块0数据,然后把md 0x20000000 数据也dump出来比较,发现是一致的, 这个时候应该就可以判定读写正常了吧?


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-19 20:00 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表