ARM的MMU存储访问权限控制详解

MMU对段和页面进行保护,对段和页面进行保护是由几个因素造成的。它由域的访问控制字段和一级描述符或二级描述符中的AP字段,以及C1寄存器的S(表示system),R(表示rom)控制位来共同决定的。

MMU中的域是指的一些段,大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性由CP15中的寄存器C3中的两位来控制。CP15中的寄存器C3的格式如下:

 

 其中每两位控制一个域的访问控制特性,其编码及对应的含义如下:

 

当控制位为00时,此域是没有访问权限的;

当控制位为01时,此时域的属性为“用户”域;

当控制位为11时,此时域的属性为“系统”域。 

 

当其域为“系统”域时,APSR的值将会忽略,CPU(无论cpu运行在用户级还是在特权级)可以直接访问存储内容,将不进行存储权限检查。

当其域为“用户”域时,存储访问权限控制由APSR来决定。

 

当域为“用户”域时,APSR控制访问权限的具体规则如下:

 

对上图的应该这样理解:

当域为“用户”域时,当CPU运行在“特权级”或“用户级”时,APSR控制段或页的存储访问权限;

 

比如:

当域为“用户”域时,当CPU运行在“用户级”时,AP=00S=1R=0,查表可知,这时CPU没有访问权限;

当域为“用户”域时,当CPU运行在“特权级”时,AP=00S=1,R=0,这里CPU只能读存储内容,但不能写,如果写的话将产生错误;

注意:APSR的决定访问权限的作用只用是在其域为“用户”域的状态。

 

 

                                                    

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值