0

在我的mx53_loco板上我有一个问题:当我在板特定的标题中添加命令行帮助定义(CONFIG_SYS_LONGHELP)时,构建完成成功但是当我启动板时我发现环境损坏(所有命令都无法识别)。

即使我增加CONFIG_EXTRA_ENV_SETTINGS定义的大小,我也有这个问题。

所以这似乎是与u-boot某处溢出的代码大小有关的问题。( memory map re-definition?)

我将能够u-boot正确调整内部布局的大小。

谁能解释我发生了什么或建议一个有用的链接?

4

1 回答 1

0

u-boot 总是先读取保存的环境变量。这些环境变量通常位于非易失性存储器(NOR 或 NAND 闪存或其他)中。如果保存的环境变量的 CRC 正确,则使用保存的环境变量。如果您更改了 CONFIG_EXTRA_ENV_SETTINGS,它将不会被使用!

CONFIG_EXTRA_ENV_SETTINGS 中的值仅在您将环境变量重置为默认值并保存它们时使用:

$ env default -f
$ saveenv

您还应该注意映射和大小。添加新环境变量时,请确保 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 覆盖的闪存区域和你编写环境变量的闪存区域。

于 2012-09-06T22:47:13.103 回答