无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

使用新浪微博登录

一号多站,快速登录

人人连接登陆

无需注册,直接登录

搜索
欢迎光临无线电爱好网  www.86x.net 捍卫钓鱼岛 抵制日货
无线电爱好网 欢迎广大电子爱好者和无线电爱好者 建立自己的专业群组!最
无线电爱好网开通网络电视功能插件,有些浏览器不能正常观看,推荐使用 360极速浏览器 36
手机天线原理和设计 4411
移动通信基站基础知识 4410
周海婴被公众提及最多的一个身份是“鲁迅独子”,其实他并没有走父亲的文学之路,而是在无线电
火腿入门必读 注:资料来自网络,原作者不详 第
.李建清.扫描版3730 3731
.李建清.扫描版 3728 3729
功率放大模块.型号 频率 功率 注:资料来自网络
本帖最后由 lfcx 于 2012-8-11 15:48 编辑 http://www.86x.net/data/attachment/portal/201208/11/085633h
.李建清.扫描版.pdf 3745 3746
.刘建清.扫描版 3736 3737
基于微盟ME8204 应用 12V-2A 开关电源应用方案(原理图,PCB 下载条件
本方案使用微盟 me8204 IC 4
六级能效标准的挑战 资源:115网盘附件下
 路灯电缆故障测试仪,实际上可以由便携式测距
ARM体系结构(1).pdf 4058
嵌入式系统设计师考试笔记(完整整理版).pdf 4057
求led点阵时钟程序,急!
买仪器就到我爱仪器网,那里更全,服务更好
本帖最后由 lfcx 于 2012-1-25 18:04 编辑 资源:115
本帖最后由 lfcx 于 2012-1-6 16:31 编辑 资源:115网盘附件下载:第11讲.rar (1
资源:115网盘附件下载:MCS-51单片机原理及接口技术.rar (5.51MB)
资源:115网盘附件下载:8098单片机原理与应用.rar (4
资源:115网盘附件下载:keil+uvision4破解版下
资源:115网盘附件下载:Proteus-自建元件库.doc (563.00KB) 《单片机模拟仿真软件》Proteus7.5sp3破解汉化
μCOS-Ⅱ Mega128 源代码
Linux基础教程!!
综合台湾媒体报道,台空军屏东联队第20电子战大队破获共谍案,少校郝志雄涉嫌被大陆收
本帖最后由 lfcx 于 2012-3-23 21:22 编辑 资源:115网盘附件下载:EMC
资源:115网盘附件下载:EMC设计整改指导
这里将免费提供场地,收录国内

嵌入式-ARM寄存器基本概念

2012-6-21 15:45| 发布者: lfcx| 查看: 462| 评论: 0|来自: 网络

摘要: 无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。ARM自身是 ...

 

无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。

ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。

这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。

ARM自身是统一架构的,也就意味着37个寄存器无论在哪个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就出现了好多外设寄存器,一定要与这37个寄存器区别开来!!!

1、备份寄存器(R8-R14)

对于R8-R12来说,除在快速中断模式下,每个模式对应相同物理寄存器,所以在FIQ模式下可不必保护和恢复中断现场。

对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式和系统模式共用的。

寄存器R13常用做栈指针SP,除用户和系统模式外,其他模式在使用时的名字构成为R13_

寄存器R14又被称

2、不分组寄存器(R0-R7)

不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是使用的同一个寄存器,这样可能造成寄存器中数据被破坏,所以在进行模式切换时必须加以保护。

为连接寄存器(LR),除用户和系统模式外,其他模式在使用时的名字构成为 R14_

有下面两种特殊用途:

A、每个处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。

B、当异常中断发生时,该异常模式下的R14被设置成保存该模式基于PC的返回地址,对于有些异常模式,R14的值有可能与将返回的地址有个常数的偏移量,不同模式偏移量还有所不同(在ARM 的异常处理里有详细介绍)。

3、程序计数器R15

对于用户来说,尽量避免使用STR/STM指令来保存R15的值。当成功向R15写入一个地址数值时,程序将跳转到该地址执行。

在ARM状态下指令总是字对齐的,所以PC的PC[1:0]位恒为零,在想PC写入地址时一定要注意将PC[1:0]设为零。

ARM采用的是3级流水线结构,所以PC指向的是当前执行指令的下两条指令,PC-8为当前指令地址。

4、程序状态寄存器

CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。同时除了用户和系统模式以外,每中处理器模式下都有一个专用的物理状态寄存器,称为 SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。当在用户模式和系统模式中访问SPSR,将会产生不可预知的结果。

CPSR和SPSR的格式相同,如下:

0:M0

1:M1

2:M2

3:M3

4:M4

5:T(=1 Thumb执行)

6:F(=1是禁止)

7:I(=1是禁止)

注意:M0~M4并不是所有的组合都定义了有效的处理模式,如果错误设置,将会引起无法预料的错误。

27:Q 在ARM V5的E系列处理器中,CPSR的bit[27]称为q标识位,主要用于指示增强的dsp指令是否发生了溢出。同样的spsr的bit[27]位也称为q 标识位,用于在异常中断发生时保存和恢复CPSR中的Q标识位。

在ARM V5以前的版本及ARM V5的非E系列的处理器中,Q标识位没有被定义

28:V 对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号为溢出;通常其他指令不影响V位。

对于其他指令,V统常不发生变化。

29:C 下面分四种情况讨论C的设置方法:

在加法指令中(包括比较指令CMN),当结果产生了进位,则C=1,表示无符号运算发生上溢出;其他情况C=0。

在减法指令中(包括减法指令CMP),当运算中发生借位,则C=0,表示无符号运算数发生下溢出;其他情况下C=1。

对于包含移位操作的非加减运算指令,C中包含最后一次移出位的数值。

对于其他非加减运算指令,C位的值通常不受影响。

30:Z z="1表示运算的结果为零";z=0表示运算的结果不为零。对于CMP指令,Z=1表示进行比较的两个数大小相等。

31:N 当两个表示的有符号整数运算时,n=1表示运算结果为负数,n=0表示结果为正书或零。

MRS:状态寄存器到通用寄存器的传送指令。

MSR:通用寄存器到状态寄存器的传送指令

 已同步至 lfcx的微博

鲜花

握手

雷人

路过

鸡蛋

相关阅读


QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 沪ICP备13030311号-1|申请链接 |人工智能  网站事务:点击这里给我发消息 技术支持:点击这里给我发消息 广告联系:点击这里给我发消息

GMT+8, 2013-12-6 09:03 , Processed in 0.111426 second(s), 44 queries .

Powered by Discuz! X3 Licensed

© 2001-2013 Comsenz Inc.

返回顶部