我如何知道 uboot 正在使用什么内存 RAM 地址范围?

Ank*_*wal 14 linux boot memory u-boot

我在 uboot 中,想知道如何知道 uboot 正在使用什么 RAM 地址范围。

uboot 需要内存才能运行,因此它可能正在使用一些 RAM。我想避免修改这些 RAM 地址。

我如何知道 uboot 加载了哪个内存区域?

Law*_*ceC 2

DULG DebuggingUBoot页面有这样的说法(它所说的“重定位”是将自身从闪存复制到 RAM)。

\n\n
\n

为了在重定位后调试 U-Boot,我们需要知道 U-Boot 将自身重定位到的地址。当不使用 PRAM 等特殊功能时,该地址通常是 - CONFIG_SYS_MONITOR_LEN。在我们的示例中,具有 16MB RAM 且 CONFIG_SYS_MONITOR_LEN = 192KB,这会产生地址 0x1000000 - 0x30000 = 0xFD0000。

\n
\n\n

进一步阅读文本似乎表明它取决于处理器或主板,您可能需要检查 U-Boot 源代码才能确定。

\n\n

关于大师插头

\n\n
\n

在 RAM 方面,u-Boot 保留了前 8 MB。其余的都是免费的。一些开发人员\xe2\x80\x99s会在0\xc3\x97800000处加载内核和文件系统以编程到闪存。另一个常见点是 100 MB 边界(或偏移量 0\xc3\x97640000)。

\n\n

根据您的 U-Boot 命令版本,可能可以将字符串放入空闲 RAM 中的某个位置,然后在 RAM 的其余部分中查找该字符串,从而显示 U-Boot 在内存中的大致位置。

\n
\n