没有合适的资源?快使用搜索试试~ 我知道了~
首页ARM9协处理器命令详解 文本文档
资源详情
资源评论
资源推荐

ARM 协处理器指令
什么是协处理器?
协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理
器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium 微处理
器就包括内置的数学协处理器。
协处理器可以附属于 ARM 处理器。一个协处理器通过扩展指令集或提供配置寄存
器来扩展内核处理功能。一个或多个协处理器可以通过协处理器接口与 ARM 内核相连。
协处理器可以通过一组专门的、提供 load-store 类型接口的 ARM 指令来访问。例
如协处理器 15(CP15),ARM 处理器使用协处理器 15 的寄存器来控制 cache、TCM
和存储器管理。
协处理器也能通过提供一组专门的新指令来扩展指令集。例如,有一组专门的指令
可以添加到标准 ARM 指令集中,以处理向量浮点
(VFP)运算。
这些新指令是在 ARM 流水线的译码阶段被处理的。如果在译码阶段发现是一条协
处理器指令,则把它送给响应的协处理器。如果该协处理器不存在,或不认识这条指令,
则 ARM 认为发生了未定义指令异常。这也使得编程者可以用软件来仿真协处理器的行
为(使用未定义指令异常服务子程序)。
80486CPU 之前有协处理器,提高浮点运算能力,那时 cpu 较弱才有的协处理器,
现在速度是原来数百倍不止,pc 机一般不存在协处理器了。
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,
每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。
ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及
在 ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器
和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条:
— CDP 协处理器数操作指令
— LDC 协处理器数据加载指令
— STC 协处理器数据存储指令
— MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令
— MRC 协处理器寄存器到 ARM 处理器寄存器的数据传送指令
1、CDP 指令
CDP 指令的格式为:
CDP{条件} 协处理器编码,协处理器操作码 1,目的寄存器,源寄存器 1,源寄存器 2,协
处理器操作码 2。 CDP 指令用于 ARM 处理器通知 ARM 协处理器执行特定的操作,若协处
理器不能成功完成特定的操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理

器操作码 2 为协处理器将要执行的操作,目的寄存器和源寄存器均为协处理器的寄存器,
指令不涉及 ARM 处理器的寄存器和存储器。
指令示例:
CDP P3 , 2 , C12 , C10 , C3 , 4 ;该指令完成协处理器 P3 的初始化
2、LDC 指令
LDC 指令的格式为:
LDC{条件}{L} 协处理器编码,目的寄存器,[源寄存器]
LDC 指令用于将源寄存器所指向的存储器中的字数据传送到目的寄存器中,若协处理器不
能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,
如用于双精度数据的传输。
指令示例:
LDC P3 , C4 , [R0] ;将 ARM 处理器的寄存器 R0 所指向的存储器中的字数据传送到协
处理器 P3 的寄存器 C4 中。
3、STC 指令
STC 指令的格式为:
STC{条件}{L} 协处理器编码,源寄存器,[目的寄存器]
STC 指令用于将源寄存器中的字数据传送到目的寄存器所指向的存储器中,若协处理器不
能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,
如用于双精度数据的传输。
指令示例:
STC P3 , C4 , [R0] ;将协处理器 P3 的寄存器 C4 中的字数据传送到 ARM 处理器的寄存
器 R0 所指向的存储器中。
4、MCR 指令
MCR 指令的格式为:
MCR{条件} 协处理器编码,协处理器操作码 1,源寄存器,目的寄存器 1,目的寄存器 2,
协处理器操作码 2。
MCR 指令用于将 ARM 处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成
功完成操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理器操作码 2 为协处
理器将要执行的操作,源寄存器为 ARM 处理器的寄存器,目的寄存器 1 和目的寄存器 2
均为协处理器的寄存器。

指令示例:
MCR P3,3,R0,C4,C5,6;该指令将 ARM 处理器寄存器 R0 中的数据传送到协处理器
P3 的寄存器 C4 和 C5 中。
5、MRC 指令
MRC 指令的格式为:
MRC{条件} 协处理器编码,协处理器操作码 1,目的寄存器,源寄存器 1,源寄存器 2,协
处理器操作码 2。
MRC 指令用于将协处理器寄存器中的数据传送到 ARM 处理器寄存器中,若协处理器不能成
功完成操作,则产生未定义指令异常。其中协处理器操作码 1 和协处理器操作码 2 为协处
理器将要执行的操作,目的寄存器为 ARM 处理器的寄存器,源寄存器 1 和源寄存器 2 均
为协处理器的寄存器。
指令示例:
MRC P3,3,R0,C4,C5,6;该指令将协处理器 P3 的寄存器中的数据传送到 ARM 处理
器寄存器中.
再举个例子:
mrc p15,0,r0,c1,c0,0
将协处理器 p15 的寄存器中的数据传送到 ARM 处理器的寄存器 r0 中,其中 1 是协处理器操
作码 1,0 是协处理器操作码 2,c1 存放第一个操作数的协处理器寄存器,c0 存放第二个操作数
的协处理器寄存器
ARM920T 有两个具体协处理器:
1、CP14 调试通信通道协处理器
调试通信通道协处理器 DCC(the Debug Communications Channel)提供了两个 32bits 寄存器
用于传送数据,还提供了 6bits 通信数据控制寄存器控制寄存器中的两个位提供目标和主机
调试器之间的同步握手。
通信数据控制寄存器
剩余11页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0