ARM启动时,32位地址总线能寻址4G地址,芯片启动时总是从0地址启动,所以总线上的0地址是作为映射用的,映射启动代码,并不是内存中的实际0地址,总线上的所有地址都是作为一个映射,都是由硬件设计去分配的。物理地址是从地址总线上传来的地址,经过MMU(MMU作为硬件可选择的一部分)由虚拟地址转化之后形成的地址。32位CPU一共可寻址4GB,这4GB并不是全部分配给内存,有一部分要分配给总线使用(总线上挂着很多外设),一般是低地址给内存,高地址给总线,外设使用的是总线地址,CPU使用的是物理地址(独立编制)。没有MMU或者有MMU但没有启用的芯片,CPU出来的地址直接送到总线然后被内存单元接收,这就叫物理地址。
如果有不对的地方请谅解,本人也是刚开始学这部分。