ARM微处理器寄存器和处理器模式

发布者:星尘之泪最新更新时间:2016-07-07 来源: eefocus关键字:ARM  微处理器  寄存器  处理器模式 手机看文章 扫描二维码
随时随地手机看文章
 ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个...
  • 寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,ARM 处理器在寄存器使用上是高度灵活的。
  • 寄存器 8 到 12 是通用寄存器,但是在切换到 FIQ 模式的时候,使用它们的影子(shadow)寄存器。
  • 寄存器 13 典型的用做 OS 栈指针,但可被用做一个通用寄存器。这是一个操作系统问题,不是一个处理器问题,所以如果你不使用栈,只要你以后恢复它,你可以在你的代码中自由的占用(corrupt)它。每个处理器模式都有这个寄存器的影子寄存器。
  • 寄存器 14 专职持有返回点的地址以便于写子例程。当你执行带连接的分支的时候,把返回地址存储到 R14 中。同样在程序第一次运行的时候,把退出地址保存在 R14 中。R14 的所有实例必须被保存到其他寄存器中(不是实际上有效)或一个栈中。这个寄存器在各个处理器模式下都有影子寄存器。一旦已经保存了连接地址,这个寄存器就可以用做通用寄存器了。
  • 寄存器 15 是程序计数器。它除了持有指示程序当前使用的地址的二十六位数之外,还持有处理器的状态。

为更清晰一些... 提供下列图表:

User 模式  SVC 模式   IRQ 模式   FIQ 模式  APCS

R0 ------- R0 ------- R0 ------- R0        a1
R1 ------- R1 ------- R1 ------- R1        a2
R2 ------- R2 ------- R2 ------- R2        a3
R3 ------- R3 ------- R3 ------- R3        a4
R4 ------- R4 ------- R4 ------- R4        v1
R5 ------- R5 ------- R5 ------- R5        v2
R6 ------- R6 ------- R6 ------- R6        v3
R7 ------- R7 ------- R7 ------- R7        v4
R8 ------- R8 ------- R8         R8_fiq    v5
R9 ------- R9 ------- R9         R9_fiq    v6
R10 ------ R10 ------ R10        R10_fiq   sl
R11 ------ R11 ------ R11        R11_fiq   fp
R12 ------ R12 ------ R12        R12_fiq   ip
R13        R13_svc    R13_irq    R13_fiq   sp
R14        R14_svc    R14_irq    R14_fiq   lr
------------- R15 / PC -------------       pc 

程序计数器构造如下:

  位   31  30  29  28  27  26  25------------2  1  0

       N   Z   C   V   I   F    程 序 计 数 器  S1 S0

下面是你想知道的"模式",比如上面提及的"FIQ"模式。

  • 用户模式,运行应用程序的普通模式。限制你的内存访问并且你不能直接读取硬件设备。
  • 超级用户模式(SVC 模式),主要用于 SWI(软件中断)和 OS(操作系统)。这个模式有额外的特权,允许你进一步控制计算机。例如,你必须进入超级用户模式来读取一个插件(podule)。这不能在用户模式下完成。
  • 中断模式(IRQ 模式),用来处理发起中断的外设。这个模式也是有特权的。导致 IRQ 的设备有键盘、 VSync (在发生屏幕刷新的时候)、IOC 定时器、串行口、硬盘、软盘、等等...
  • 快速中断模式(FIQ 模式),用来处理发起快速中断的外设。这个模式是有特权的。导致 FIQ 的设备有处理数据的软盘,串行端口(比如在 82C71x 机器上的 A5000) 和 Econet。
IRQ 和 FIQ 之间的区别是对于 FIQ 你必须尽快处理你事情并离开这个模式。IRQ 可以被 FIQ 所中断但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以有更多的影子寄存器。FIQ 不能调用 SWI。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了并应该是 IRQ 而不是 FIQ。 Phew!
关键字:ARM  微处理器  寄存器  处理器模式 引用地址:ARM微处理器寄存器和处理器模式

上一篇:ARM C C++内存对齐
下一篇:arm,体系结构,处理器模式,通用寄存器(转)

推荐阅读最新更新时间:2024-03-16 14:59

基于ARM9 AT91RM9200T的嵌入式网络接口
   1 引言   当今时代设备网络化是当今科技发展的趋势。如何使用嵌入式系统将设备的远程控制、数据的远程传输数据转发到网络上呢?嵌入式网关使用嵌入式Linux操作系统,数据存储芯片SDRAM、FLASH,网络控制芯片DM9161等,实现网络通讯的传输方案便是基于这种思想而设计的。    2 硬件设计   本系统采用ATMEL公司生产的微处理器AT91RM9200T 。其处理速度可达200MIPS,同时它也具有USB、Earthnet、支持RS485的红外串口、IIC、SPI、SSC等丰富的片内资源。网口控制芯片DM9161, SDRAM和Flash接口。系统的硬件结构框架如图1所示。    2.1 AT91R
[嵌入式]
ARM 处理器寻址方式之间接寻址的几种表达
我们以 LDR 指令为例来分别举例分析。 LDR 指令的格式为: LDR{条件} 目的寄存器, 存储器地址 LDR 指令是字加载指令,用于从存储器中将一个 32 位的字数据送到目的寄存器中。该指令通常用于从存储器中读取 32 位的字数据到通用寄存器,然后对数据进行处理。当程序计数器 PC 作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。 指令示例: LDR R3, ; 将存储器地址为 R4 的字数据读入寄存器 R3 LDR R3, ; 将存储地址为 R1+8 的字数据读入寄存器 R3 LDR R3, ; 将存储器地址为 R1+R2 的字数据
[单片机]
ARM嵌入式开发板汽车节能控制系统
   引言   由于各种原因,公交车总是不断重复加速—减速或停车—再加速的过程。通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效果。同时由于汽车在起动或加速时能耗最大,如果汽车是用燃油驱动,则此时油料燃烧不充分,燃烧效果最差,而且产生的噪音最大。    系统工作原理   本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感
[单片机]
<font color='red'>ARM</font>嵌入式开发板汽车节能控制系统
ARM中国总经理吴雄昂上任 解读发展策略
“合作,我们可以做任何事情!”2009年7月24日,ARM全球总裁Tudor Brown在北京丽亭华苑酒店新闻发布会上对EEWORLD说。确实,ARM正与众多合作伙伴一起在电子行业打造着自己的天空。 ARM全球总裁Tudor Brown ARM全球总裁Tudor Brown在演讲中充分肯定了谭军在工程大学方面所做的工作及产品推广能力,并称最新的ARM中国总经理兼销售副总裁吴雄昂,将继续推广ARM在国内的商业活动、与政府的交流以及维持与大学的良好合作,推动生态系统向前发展。 ARM中国总经理兼销售副总裁Allen Wu
[单片机]
ARM核心板在脑电监测TCI注射泵中的应用
1.1背景事件 针对患者手术中麻醉剂的施用,当麻醉剂量超标时,容易造成患者心跳、呼吸骤停从而造成脑损伤。传统的麻醉剂注射依靠麻醉师的经验,而新型的脑电监测TCI注射泵则将BIS(脑电监测)与TCI(靶控输注)相结合,真正实现个体化镇静麻醉,减少麻醉风险。 1.2脑电监测TCI注射泵控制主板功能需求 脑电监测TCI注射泵在常规注射泵基础上,通过接收 脑电分析仪 的数据来进行分析决策注射量和注射速度,使注射更加科学,更加安全。 控制主板主要功能需求: 显示接口,外接7寸以上真彩液晶,支持触摸屏; RS-232接口,连接脑电分析仪; PWM,控制注射电机; ADC,采集注射管位置数据信息;
[电源管理]
<font color='red'>ARM</font>核心板在脑电监测TCI注射泵中的应用
基于ARM7TDMI内核SEP3203处理器的语音信号的软件实时编解码的实现
  本文基于东南大学国家专用集成电路系统工程技术研究中心自主研发的ARM7TDMI内核的32位嵌入式SoC——SEP3203处理器,采用G.721标准ADPCM算法,实现了语音信号的软件实时编解码,为语音处理应用提供了一种有效的嵌入式解决方案。   1 G.721标准概述   1937年,A.H.Reeves提出脉冲编码调制(PCM),开创了语音数字化通信的历程。CCITT在20世纪80年代初,开始研究低于64 Kb/s的非PCM编码算法,先后制定通过了G.721、G.728、 G.729等编码标准。其中,G.721协议作为ADPCM的典型算法,不仅具有与PCM近乎相同的语音质量,而且有简单的算法结构和优良的抗误码性能,在卫星
[单片机]
基于<font color='red'>ARM</font>7TDMI内核SEP3203<font color='red'>处理器</font>的语音信号的软件实时编解码的实现
AMD明年推出首款ARM服务器芯片 代号西雅图
    AMD计划在明年年初推出首款ARM架构的服务器芯片,跟配套的CPU和集成显卡核心一起,向英特尔Xeon在服务器芯片市场上的霸主地位发起冲击。   AMD的高管表示,这款ARM核心代号为“西雅图”(Seattle),将在2014年下半年批量出货。AMD还会在2014年推出“柏林”(Berlin)核心,它将以CPU和APU两种形式出现,其APU形式集成了处理器和一个集显。此外还有“华沙”(Warsaw),它将在高性能计算(HPC,high-performancecomputing)层面与Xeon处理器开展竞争。   行业观察家们对“西雅图”很感兴趣,因为对AMD来说,这可能会是一个非常有趣的机遇,或许能帮AMD在服务器芯片市
[手机便携]
飞思卡尔计划采用ARM® Cortex®-M7内核
业界最广泛的基于ARM Cortex-M内核的可兼容且可扩展的MCU组合,将随着Cortex-M7内核的采用得到进一步扩展。 2014年9月24日 ,德克萨斯州奥斯汀讯-飞思卡尔半导体 日前宣布为最近发布的ARM Cortex-M7内核提供全面支持,飞思卡尔计划利用该内核使即将推出的嵌入式SoC的性能和功效达到新水平。飞思卡尔是ARM领先的合作伙伴和多种ARM产品的早期采用者,并且率先在市场推出了基于Cortex-M4内核和Cortex-M0+内核的MCU。 飞思卡尔拥有业界最广泛的基于ARM Cortex-M内核的可兼容且可扩展的MCU产品组合,可跨六个独特的Kinetis系列实现软件和硬件兼容,同时可选择提供通
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved