如何解决u-boot执行saveenv时不能erase的错误
gfy@S3C2440 # saveenvSaving Environment to NAND...
Erasing Nand...
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -22
Writing to Nand...
gfy@S3C2440 # 应该那个flash.c文件没移植好,u-boot没办法操作flash.擦不了也写不了 应该那个flash.c文件没移植好,u-boot没办法操作flash.擦不了也写不了 应该那个flash.c文件没移植好,u-boot没办法操作flash.擦不了也写不了 我也遇到这个问题,能具体点不? 悲剧了,我也这样了,是哪个宏没定义还是怎么回事…… 刚发现擦除从某块的开始擦除就正常,比如地址0x20000,0x40000等。如果不是一块的开始,比如0x30000,0x50000等,就会失败…… 我也碰到了这个问题,请问这个是怎么解决的啊? offset要位于整块的开始,len是整数块的大小 我觉得可能是没有块对齐,擦写nand的地址要注意块对齐。
最好把程序贴出来看看 也不知道这个问题解决了没有,关注一下 一般来说,这个问题是因为nandflash已经坏掉了,或者是因为nandflash没有焊接好 在 u-boot/include/configs/xxx.h里面定义环境参数的时候:
//#define CFG_ENV_IS_IN_FLASH 1
#define CFG_ENV_IS_IN_NAND 1
#define CFG_ENV_OFFSET 0x40000
#define CFG_ENV_SIZE 0x20000 /* Total Size of Environment Sector */
CFG_ENV_SIZE这个数值必须是nand flash block size的整数倍。 nand 启动,我的环境变量保护出现了这种情况,谢谢! 学个arm不容易,一个小问题弄两天
页:
[1]