免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2140 | 回复: 0
打印 上一主题 下一主题

S3C6410/ARM11协处理器 MMU 参考手册 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:41 |只看该作者 |倒序浏览
Andrew Huang <bluedrum@163.com>

关于MMU编程,有几个是要经常查阅的资料。这里我把它整理成一篇文档,因此篇幅太长,节选发上来,全部内容放在附件的PDF当中。

  这个文档主要有三个内容
   一.协议处器CP15 中寄存器的全部说明.
   二.ARM 协处理指令
   三.CP15命令列表

一.协议处器CP15 中寄存器说明
---------------------------------------------------------------------------

引自 http://blog.csdn.net/genglei1022/archive/2010/07/05/5712843.aspx


寄存器编号

基本作用

 MMU 中的作用

 PU 中的作用

0

ID 编码(只读)

ID 编码和 cache 类型

 

1

控 制位(可读写)

各 种控制位

 

2

存 储保护和控制

地 址转换表基地址

Cachability 的控制位

3

存 储保护和控制

域 访问控制位

Bufferablity 控制位

4

存 储保护和控制

保 留

保 留

5

存 储保护和控制

内 存失效状态

访 问权限控制位

6

存 储保护和控制

内 存失效地址

保 护区域控制

7

高 速缓存和写缓存

高 速缓存和写缓存控制

 

8

存 储保护和控制

TLB 控制

保 留

9

高 速缓存和写缓存

高 速缓存锁定

 

10

存 储保护和控制

TLB 锁定

保 留

11

保 留

 

 

12

保 留

 

 

13

进 程标识符

进 程标识符

 

14

保 留

 

 

15

因 不同设计而异

因 不同设计而异

因 不同设计而异



二. ARM协处理器指令

----------------------------------------------------------------------------


引自http://blog.csdn.net/aaaaatiger/archive/2007/09/02/1769470.aspx

 

ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。

ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条:

  • — CDP 协处理器数操作指令
  • — LDC 协处理器数据加载指令
  • — STC 协处理器数据存储指令
  • — MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令
  • — MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令
  •  

1CDP 指令

CDP 指令的格式为:

CDP{条件协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理

器操作码2

CDP 指令用于ARM 处理器通知ARM 协处理器执行特定的操作,若协处理器不能成功完成特定的操作,则产生未定义指令异常。其中协处理器操作码和协处理器操作码为协处理器将要执行的操作,目的寄存器和源寄存器均为协处理器的寄存器,指令不涉及ARM 处理器的寄存器和存储器。

指令示例:

CDP P3  2  C12  C10  C3  4 ;该指令完成协处理器 P3 的初始化

2LDC 指令

LDC 指令的格式为:

LDC{条件}{L} 协处理器编码,目的寄存器,[源寄存器]

LDC 指令用于将源寄存器所指向的存储器中的字数据传送到目的寄存器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。

指令示例:

LDC P3  C4  [R0] ;将 ARM 处理器的寄存器 R0 所指向的存储器中的字数据传送到协处理器 P3 的寄存器 C4 中。

3STC 指令

STC 指令的格式为:

STC{条件}{L} 协处理器编码,源寄存器,[目的寄存器]

STC 指令用于将源寄存器中的字数据传送到目的寄存器所指向的存储器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。

指令示例:

STC P3  C4  [R0] ;将协处理器 P3 的寄存器 C4 中的字数据传送到 ARM 处理器的寄存器R0 所指向的存储器中。

4MCR 指令

MCR 指令的格式为:

MCR{条件协处理器编码,协处理器操作码1,源寄存器,目的寄存器1,目的寄存器2,协处

理器操作码2

MCR 指令用于将ARM 处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码和协处理器操作码为协处理器将要执行的操作,源寄存器为ARM 处理器的寄存器,目的寄存器和目的寄存器均为协处理器的寄存器。

指令示例:

MCR P3  3  R0  C4  C5  6 ;该指令将 ARM 处理器寄存器 R0 中的数据传送到协处理器 P3 的寄存器 C4  C5 中。

5MRC 指令

MRC 指令的格式为:

MRC{条件协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理

器操作码2

MRC 指令用于将协处理器寄存器中的数据传送到ARM 处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码和协处理器操作码为协处理器将要执行的操作,目的寄存器为ARM 处理器的寄存器,源寄存器和源寄存器均为协处理器的寄存器。

指令示例:

MRC P3  3  R0  C4  C5  6 ;该指令将协处理器 P3 的寄存器中的数据传送到 ARM 处理器寄存器中.

二. 协处理器指令命令列表

-------------------------------------------------------------

引自 http://www.iphonedevwiki.net/index.php/Coprocessors

Register allocation for Opcode 0

cN   ↓

cM   ↓

opcode2   ↓

Register   ↓

Readable (mrc)   ↓

Writable (mcr)   ↓

Comments   ↓

c0

c0

0

Main ID

Privileged

No

Contains vendor, architecture, part number, etc.[2]

c0

c0

1

Cache type

Privileged

No

Size and architecture of cache.[3]

c0

c0

2

Tightly coupled memory (TCM) status

Privileged

No

 

c0

c0

3

Translation look-aside buffer (TLB) type

Privileged

No

 

c0

c0

5

Multiprocessor ID

Privileged

No

(Cortex only.)


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP