我试图理解arm上的启动过程和内存管理,并且有关于内存映射地址和ram地址的问题。
每个Soc都有一个内存映射,大小取决于寻址能力,例如:32位处理器具有2 ^ 32或4GB的寻址能力。存储器映射将包含映射的不同外设的地址和向量表e.t.c例如:地址0x00000000是复位向量,地址0x70000000是UART寄存器,依此类推。
同样,DDR控制器也会有一个内存映射地址来控制RAM。
假设RAM的大小为4GB,如何在不影响存储器映射(或UART寄存器)的情况下访问RAM的地址0x70000000?
如果我误解了它,请纠正我的理解。
答案 0 :(得分:0)
简单的答案是:它无法访问。内存映射外设优先于同一地址的RAM。
最着名的例子实际上是Win32,其中视频卡是内存映射的,并且通常会将可用内存减少到3.5GB。