声明及感谢, 本文为参照朱有鹏的linux课程总结的, 在此对朱有鹏老师表示感谢.
uboot执行过saveenv,因此环境变量已经被保存到inand中的env分区中去了, uboot启动后校验时inand的env分区的环境变量是正确的, 因此会优先加载.我们在uboot源代码中修改的只是默认的环境变量.解决方案是擦除掉inand中的那一份环境变量.然后迫使uboot启动时使用.
擦除的方法是使用mmc write命令擦除
mmc write 0 30000000 11# 32 使用这个命令就可以擦除掉env扇区
(整一句话的意思是, 表示将DDR的0x30000000开头的一段内存的内容写入iNand中的第17个扇区开始的32个扇区内, 写入的长度是32个扇区长度(16KB))
0: 设备编号 0 表示iNand 1表示SD
30000000 随便给的地址
11# 扇区号(这里是十六进制的, 实际是17(十进制))
32 删除的扇区大小 一共删除32个扇区.