在我的mx53_loco
板上,我遇到了问题:
当我在板特定标题中添加命令行帮助定义(CONFIG_SYS_LONGHELP
)时,构建完成成功,但是当我启动板时,我发现一个损坏的环境(所有命令都无法识别)。
即使我增加了CONFIG_EXTRA_ENV_SETTINGS
define的大小,我也遇到了这个问题。
所以它似乎是一个与某个地方溢出的u-boot
代码大小相关的问题。 (memory map re-definition?
)
我可以正确调整u-boot
的内部布局。
任何人都可以向我解释会发生什么或建议一个有用的链接吗?
答案 0 :(得分:0)
u-boot始终首先读取保存的环境变量。这些环境变量通常位于非易失性存储器(NOR或NAND闪存或其他)中。如果保存的环境变量的CRC正确,则使用保存的env变量。如果您更改了CONFIG_EXTRA_ENV_SETTINGS,则不会使用它!
CONFIG_EXTRA_ENV_SETTINGS中的值仅在您将env vars重置为默认值并保存时使用:
$ env default -f
$ saveenv
您还应该注意您的地图和尺寸。添加新的env变量时,请确保CONFIG_ENV_SIZE和CONFIG_ENV_OFFSET正确无误。
请阅读u-boot源的顶级目录中的README文件。 并浏览邮件列表:http://news.gmane.org/gmane.comp.boot-loaders.u-boot
编辑:
您还应验证CONFIG_SYS_FLASH_BASE和CONFIG_SYS_MONITOR_LEN是否正确。只需确保不要覆盖u-boot覆盖的闪存区域和编写env变量的闪存区域。