我用的是processor SDK Linux 05.02.00.10,am3358 + mt29F8G08ABABA
u-boot中默认是由TF卡启动,我改成了使用nand启动,使用saveenv保存环境变量时发现默认保存到TF卡上。
在menuconfig里的Environment->select the location of the environment->Environment in a NAND device选上,重新编译,错误提示:
CONFIG_ENV_OFFSET_REDUND must have CONFIG_CMD_SAVEENV & CONFIG_CMD_NAND
该错误产生在env/nand.c中:
#if defined(CONFIG_CMD_SAVEENV) && defined(CONFIG_CMD_NAND) && \
!defined(CONFIG_SPL_BUILD)
#define CMD_SAVEENV
#elif defined(CONFIG_ENV_OFFSET_REDUND)
#error CONFIG_ENV_OFFSET_REDUND must have CONFIG_CMD_SAVEENV & CONFIG_CMD_NAND
#endif
实际上CONFIG_CMD_SAVEENV和CONFIG_CMD_NAND都已经定义了。注意到正常流程中还有一个条件:!defined(CONFIG_SPL_BUILD)
不能定义CONFIG_SPL_BUILD,为什么呢?可在nand分区中有4个spl的位置,同时也有环境变量的位置啊?
谢谢各位!请指教。
Lihua Zhu:
去掉CONFIG_ENV_OFFSET_REDUND的定义可以编译,但是参数的备份区就无法使用了。