OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5529|回复: 2

ARM协处理器编程

[复制链接]

63

主题

305

帖子

1

精华

高级会员

Rank: 4

积分
853
金钱
853
注册时间
2012-8-3
在线时间
79 小时
发表于 2014-11-12 15:51:13 | 显示全部楼层 |阅读模式

格式:MCR{cond} coproc,opcodel,Rd,CRn,CRm{,opcode2}

一、MCR
命令功能要从右往左看,MCR就是Move R to C,即通用寄存器数据送到协处理器寄存器。
示例:
MCR 3,3,R0,C4,C5,6;该指令将 ARM 处理器寄存器 R0 中的数据传送到协处理器 3 的寄存器 C4 和 C5 中。 

二、MRC

示例:

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

三、编程分析。
cortex a8 有2个协处理器:CP14和CP15,CP14是debug用的,懒得看。一般只用到CP15。


以上截图摘自cortex a8参考手册,大致意思就是有 3个协处理器指令语句 可以当做NOP指令。


协处理器有以下功能组:
1.MMU配置
2.Cache配置
3.二级缓存L2预加载引擎配置
4.系统性能监视
5.数组debug
我们常用到的一般就是MMU和cache、L2 cache。
 
来看一段代码:

[mw_shl_code=c,true] /* disable l2 cache */ mrc p15, 0, r0, c1, c0, 1 bic r0, r0, #(1<<1) mcr p15, 0, r0, c1, c0, 1[/mw_shl_code]
第一行,op1为0,CRn为c1,CRm为c0,op2为1,联系下表,对应 Auxiliary Control 位置。
第二句将r0[1] 清零。第三句将r0赋给cp15





继续翻看page 3-47,找到:


Auxiliary control reg [1] 就是L2EN,清零后就禁用L2了。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-12 22:28:27 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

63

主题

305

帖子

1

精华

高级会员

Rank: 4

积分
853
金钱
853
注册时间
2012-8-3
在线时间
79 小时
 楼主| 发表于 2016-5-10 13:38:40 | 显示全部楼层

汇编代码怎么变成表情符号了???
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 02:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表