我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合特肖 > 访问类型 >

ARM Linux (S3C6410架构2635内核)的内存映射(五)

归档日期:05-01       文本归类:访问类型      文章编辑:爱尚语录

  ARM1176JZF-S处理器为访问权限控制定义了两个层次:第一层是域(Domain)的访问类型,第二层是页或者段的读写权限(Access Perm

  1.在ARM处理器中,MMU将整个存储空间分成最多16个域,记作D0~D15,每个域对应一定的存储区域,该区域具有相同的访问控制属性。每个域的访问权限分别由CP15的C3寄存器中的两位来设定,c3寄存器的大小为32bits,刚好可以设置16个域的访问权限。

  prot_pte代表页表项的访问控制权,pte即第二级映射表项(页表项)。

  prot_l1代表段表项的访问控制位,l1即第一级映射表项(段表项/主页表项)。

  prot_sect代表主页表(注意,不是主页表项)的访问控制位和内存域。

  对于ARM处理器,Linux定义了一个类型为struct mem_type的局部静态数组(arch/arm/mm/mmu.c)。根据不同的映射类型,定义了不同的访问权限。

  ARM处理器为每一个域定义了四种不两只的访问类型(0b00 ~ 0x11),Linux使用其中的三种(0b10不用),宏定义如下:

  在系统的引导过程中对这3个域的访问控制位并不是一成不变的,它提供了一个名为modify_domain的宏来修改域访问控制位。系统在setup_arch中调用early_trap_init后,DOMAIN_USER的权限位将被设置成DOMAIN_CLIENT。

本文链接:http://shawntierney.com/fangwenleixing/291.html