我是靠谱客的博主 糟糕眼睛,最近开发中收集的这篇文章主要介绍浅谈ARM协处理器命令MCR-MRC,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原文地址:浅谈ARM协处理器命令MCR-MRC 作者:BENNYSNAKE

ARM协处理器cp15,有16个寄存器,详细看《ARM体系结构与编程》

这里我大概说一下MRC与MCR这两个协处理器操作,参考《s3c2440》元件手册P140页

格式:

<MCR|MRC>{cond} p#,<expression1>,Rd,cn,cm{,<expression2>}

MCR:Move CPU register to coprocessor  register 

MRC:Move from coprocessor register to  CPU register 

cond: 就是可选的执行条件

p#:就是指定哪个协处理器,ARM920T好像有两个一个15一个14

expression1:为协处理器将要执行的操作的操作码,对于CP15来说,永远为ob00,即0,如果不是,结果不同预知

Rd:CPU寄存器

cn:目标寄存器的协处理器寄存器

cm:为附加的目标寄存器或者源操作数寄存器,用于区分同一个编号的不同物理寄存器,如果不需要,就将它设置为C0,否则结果不可预知

expression2:附加信息,用于区别同一编号的不同物理寄存器,如果省略或者为0,就表示不附加,如果不是,后果不可预知

 

看几个例子就明白:

MRC    p2,5,r3,c5,c6

协处理器p2把c5和c6经过5操作的结果赋给r3

MCR    p6,0,r4,c5,c6

协处理器p6把r4执行0操作后将结果存放进c6

MRC    p3,9,r3,c5,c6,2

协处理器p3把c5和c6经过9操作(类型2)的结果赋给r3

一个重要的应用是设置cpu总线模式:

/* 设置CPU工作于异步模式 */
    mrc p15,0,r0,c1,c0,0
    orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iA
    mcr p15,0,r0,c1,c0,0

最后

以上就是糟糕眼睛为你收集整理的浅谈ARM协处理器命令MCR-MRC的全部内容,希望文章能够帮你解决浅谈ARM协处理器命令MCR-MRC所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部