|
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 处理器寄存器中. |
ARM920T关闭MMU,cache以及写缓冲区,CP15详解
来源:
作者:
时间:2008-03-19
Tag:
点击:
先说下ARM协处理器指令:
0
最新评论共有 4 位网友发表了评论
查看所有评论
发表评论
热点关注
- 移植uClinux-2.6.9到S3C44
- 基于Qt/Embedded和Qtopia
- 华恒ColdFire系列嵌入式Li
- Linux-2.6.20内核移植到AT
- qtopia-2.2.0的交叉编译以
- 我的MiniGUI移植之路
- Qtopia安装简要入门
- 嵌入式常用IC芯片索引
- skyeye安装移植uclinux
- 嵌入式系统开发学习如何起
- linux 2.6 下基于yl2440板
- The Linux MTD, JFFS HOWT
- 嵌入式 用户图形接口uC/GU
- QT/Embedded-3.3.8初步交
- LEOS嵌入式系统地实现过程
- 构造arm-linux交叉编译工
- 学会做嵌入式Linux操作系
- armlinux启动配置文件 /et
- 常见的嵌入式操作系统都有
- uC/OS-II系统应用开发
