32位mips总共能询址2的32次方即4G的空间。即0x00000000~0xffffffff.
0x00000000~0xffffffff的这个线性空间叫做虚拟地址(virtual address,以下称va).
va地址并不是实际的物理地址(physical address,以下称pa).
整个va地址空间被分成四个大的区域。
0x00000000~0x7fffffff这个区域kuseg被用着用户地址空间。这个地址空间是应用程序的角度所能看到的程序地址空间
在有MMU内存管理单元的机器中,这个空间的地址总是要经过MMU的转换被映射到相应的
物理地址。这个空间通常被称着useg
0x80000000~0x9fffffff这个区域kseg0被用着内核地址空间,这部分地址空间通常通过缓存进行访问,因此在cache
被初始化之前是不应该访问这部分地址空间的。这部分空间被映射在物理地址空间的最低250MB
空间。va到pa的转换是通过将地址的最高位去掉,由于这个转换过程很简单,所以通常认为这个
过程未经过转换。
0xa0000000~0xbfffffff这个区域kseg1也被用着内核地址空间,同样被映射在物理地址空间地址的最低250MB空间,但这次不是
通过cache访问。这是唯一一块在系统重置后能够正常使用的地址区域。这就是为什么重置之后起
始指针0xbfc00000位于这个地址范围,它所对应的物理地址是0x1fc00000。你可以用这个区域来
访问你的初始化ROM程序,大多数人用着I/O寄存器。
0xc0000000~0xffffffff这个区域kseg只能在内核模式下访问,也要通过MMU进行转换,所以在MMU未被初始化之前不应该访问这个
地址空间。有些时候这个区域被分成两个部分kseg2和kseg3,低区域kseg2只能在超级模式下才能被访问。
mips 内存空间
最新推荐文章于 2022-04-17 21:34:45 发布