mips 内存 linux,MIPS内存空间 - HalfCoder-Zephyr - OSCHINA - 中文开源技术交流社区

本文介绍32bit mips的内存地址空间:

KUSEG:

0x00000000~0x7FFFFFFF 2G

用户空间,只能通过MMU访问

KSEG0:

0x80000000~0x9FFFFFFF 512M

内核空间,在内核态可直接访问,访问时会通过cache

KSEG1:

0xA0000000~0xBFFFFFFF 512M

内核空间,在内核态可直接访问,访问时不通过cache

KSEG2:

0xC0000000~0xFFFFFFFF 1G

内核空间,在内核态访问,但必须通过MMU

在MIPS系统复位后处于内核态,此时访问KSEG0和KSEG1的地址,相当于是访问的物理地址为KSEG0&0x1FFFFFFF和KSEG1&0x1FFFFFFF:

例如:

访问0x80004000和访问0xC0004000,相当于是访问的物理地址0x00004000

在MIPS处于内核状态时可以访问KSEG2内的地址,但是必须通过MMU做映射。

在MIPS处于用户态的情况下只有KUEG的地址空间可用,所以最大只有2G的地址空间,如果访问的地址超出KSEG0就会产生异常

因此MIPS CPU访问一个地址转换为物理地址的方法是:

判断地址在KSEG0和KSEG1内时,直接&0x1FFFFFFF得到物理地址

不在KSEG0和KSEG1时通过TLB做转换得到物理地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值