Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302057
  • 博文数量: 63
  • 博客积分: 1482
  • 博客等级: 上尉
  • 技术积分: 1185
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-12 19:06
个人简介

hello world!

文章分类

全部博文(63)

分类: LINUX

2011-03-20 11:18:58

二、ARM9协处理器要点

        对CP15协处理器的操作使用mcr和mrc两条协处理器指令,这两条指令的记法是从后往前看:mcr是把r(CPU核寄存器)中的数据传送到c(协处理器寄存器)中,mrc则是把c(协处理器寄存器)中的数据传送到r(CPU核寄存器)中。对CP15协处理器的所有操作都是通过CPU核寄存器和CP15寄存器之间交换数据来完成的。下图是协处理器的指令格式(摘自[S3C2410用户手册])。

 

       对于CP15协处理器,规定opcode1应该为0,opcode2和CRm是指令的选项,具体含义取决于不同的寄存器。 

    MCR{cond} p15,,,,,

    MRC{cond} p15,,,,,

其中L位用来区分MCR(L=1)和MRC(L=0)操作.  CP15包括15个具体的寄存器如下

 

寄存器0ID Code Register

MRC  p15, 0, Rd, C0, C0, 0  // read-only    get ID Code Register

寄存器0Cache type register

MRC  p15, 0, Rd, C0, C0, 1; returns cache details

寄存器1Control register

MRC   p15, 0, Rd, c1, c0, 0   ; read control register

MCR   p15, 0, Rd, c1, c0, 0   ; write control register

寄存器2:Translation Table Base(TTB) Register

MRC   p15, 0, Rd, C2, C0, 0  ; Read TTB register

MCR   p15, 0, Rd, C2, C0, 0  ; Write TTB register

寄存器3:Domain Access Control Register

MRC   p15, 0, Rd, C3, C0, 0   ;  Read domain 15:0 access permissions

MCR   p15, 0, Rd, C3, C0, 0   ;  Read domain 15:0 access permissions

寄存器4:保留,对该寄存器的读写会产生不可预料的结果.

寄存器5Fault Status Register

寄存器6Fault Address Register

寄存器7Cache Operations

 

寄存器8TLB Operations

Function

Data

instruction 

Invalidate TLB(s)

SBZ

MCR p15,0,Rd,c8,c7,0

Invalidate I TLB

SBZ

MCR p15,0,Rd,c8,c5,0

Invalidate I TLB single entry (using MVA)

MVA format

MCR p15,0,Rd,c8,c5,1

Invalidate D TLB

SBZ

MCR p15,0,Rd,c8,c6,0

Invalidate D TLB single entry (using MVA)

MVA format

MCR p15,0,Rd,c8,c6,1

 

 

阅读(1998) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~