Memory UBOOT中的Cmd正在使用物理地址?

Memory UBOOT中的Cmd正在使用物理地址?,memory,u-boot,Memory,U Boot,我正在看UBOOT中的cmd_mem.c。当它运行内存测试时,它只要求用户提供地址或使用默认值,然后在该地址开始读写。那么这是否意味着UBOOT CMD都在物理内存地址上运行?或者它只是意味着它正在测试虚拟地址 提前感谢U-boot不实现虚拟地址 因此,为内存测试指定的范围是物理地址。 在U-boot环境中,您正在处理线性地址 如果MMU没有像操作系统那样完全配置,它将只使用这些地址作为物理地址,而u-boot将这样做 因此,如果您正在测试一个范围,例如0x1000-0x2000,它将实际测试这

我正在看UBOOT中的cmd_mem.c。当它运行内存测试时,它只要求用户提供地址或使用默认值,然后在该地址开始读写。那么这是否意味着UBOOT CMD都在物理内存地址上运行?或者它只是意味着它正在测试虚拟地址


提前感谢

U-boot不实现虚拟地址

因此,为内存测试指定的范围是物理地址。 在U-boot环境中,您正在处理线性地址

如果MMU没有像操作系统那样完全配置,它将只使用这些地址作为物理地址,而u-boot将这样做


因此,如果您正在测试一个范围,例如0x1000-0x2000,它将实际测试这些物理地址。

您对虚拟地址概念的理解似乎需要进一步的工作。虚拟地址可以直接映射到物理地址。你在用什么平台?在ARM中,它使用MMU。在MMU关闭的情况下,ARM和u-boot使用虚拟地址和物理地址的1:1映射。是的,有没有MMU的ARM处理器,但我最近没有检查当前的u-boot是否仍然支持这些处理器。在PowerPC中,它有TLB。我的经验是,uboot通常在禁用MMU的情况下运行,或者配置为使RAM的虚拟地址始终等于物理地址。因此,如果您访问地址0x100000,那么您访问的物理内存是0x100000。这意味着测试幸运地测试了正确的物理地址…尽管可能是这样…谢谢