0

目前我对u-boot的理解如下

  1. ROM 代码加载 SPL
  2. SPL 初始化 RAM,并将 u-boot 加载到CONFIG_SYS_TEXT_BASE RAM 地址
  3. u-boot 自行重新定位
  4. 启动内核

我检查了我的 u-boot 配置,CONFIG_SYS_TEXT_BASE0x80000000,但我很好奇,我的 RAM 大小只有 1G,它仍然可以正常工作。

1G 等于0x40000000, 小于0x80000000

所以,我想知道是我对CONFIG_SYS_TEXT_BASE有误解还是我的概念有误?

4

1 回答 1

1

我检查了我的 u-boot 配置,CONFIG_SYS_TEXT_BASE 是 0x80000000,但是我很好奇,我的 RAM 大小只有 1G,它仍然可以正常工作。

1G等于0x40000000,小于0x80000000

所以,我想知道是我对 CONFIG_SYS_TEXT_BASE 有误解还是我的概念有误?

你的理解CONFIG_SYS_TEXT_BASE是正确的。错误在于 RAM 大小与 RAM 物理起始地址有关。RAM 从 0x80000000 开始,到 0xC0000000 结束(1G 之后)。所以 0xC0000000-0x80000000 = 0x40000000 = 1G。

如果您的 ram 位于 0xD0000000 并且大小为 1G 或类似的大小,您将会遇到问题。通常人们不会建立这样的系统。

于 2019-03-22T16:35:00.920 回答