Memory management ram地址与内存映射地址的区别

Memory management ram地址与内存映射地址的区别,memory-management,Memory Management,我试图理解arm上的引导过程和内存管理,但遇到了与内存映射地址和ram地址相关的问题 我的理解是: 每个Soc都有一个内存映射,大小取决于寻址能力,例如:32位处理器的寻址能力为2^32或4GB。内存映射将包含映射的不同外设的地址和向量表e.t.c ex:地址0x00000000是重置向量,地址0x7000000是UART寄存器,等等 类似地,DDR控制器也将有一个内存映射地址来控制RAM 我的问题: 假设RAM的大小为4GB,如何在不影响内存映射(或UART寄存器)的情况下访问RAM的

我试图理解arm上的引导过程和内存管理,但遇到了与内存映射地址和ram地址相关的问题

  • 我的理解是:
每个Soc都有一个内存映射,大小取决于寻址能力,例如:32位处理器的寻址能力为2^32或4GB。内存映射将包含映射的不同外设的地址和向量表e.t.c ex:地址0x00000000是重置向量,地址0x7000000是UART寄存器,等等

类似地,DDR控制器也将有一个内存映射地址来控制RAM

  • 我的问题:
假设RAM的大小为4GB,如何在不影响内存映射(或UART寄存器)的情况下访问RAM的地址0x7000000


如果我误解了,请纠正我的理解。

简单的答案是:它不可访问。内存映射外设优先于同一地址的RAM

最著名的例子实际上是Win32,其中视频卡是内存映射的,通常将可用RAM减少到3.5GB