ARM_Core的处理器模式与寄存器

发布者:星辰古泉最新更新时间:2016-06-30 来源: eefocus关键字:ARM_  处理器模式  寄存器 手机看文章 扫描二维码
随时随地手机看文章
ARM处理器的工作状态:ARM处理器有两种工作状态。在程序的执行过程中,处理器可以在两种工作状态之间切换,并且不影响

                                相应寄存器中的内容。

ARM状态,此时处理器执行32位对齐的ARM指令;BX指令,当操作数寄存器最低位为0时,进入ARM状态。

Thumb,此时处理器执行16位对齐的Thumb指令。BX指令,当操作数寄存器最低位为1时,进入Thumb状态。

BX(Branch Exchange):BX Rn;   ##其中Rn可以是R0-R15中的任意一个。指令通过将寄存器Rn的内容拷贝到程序计数器PC

                                  来完成4Gbyte的地址空间的跳转。

在进入异常中断后,ARM内核会自动切换到ARM状态,所以在异常中断处理程序入口的是ARM指令,如果需要切换到Thumb状态

       必须在异常中断返回前,切换到ARM工作状态。当处理器在Thumb状态下发生异常时,返回后,自动切换到Thumb状态。

ARM处理器总是从ARM工作状态开始的。

 

ARM处理器的7中工作模式:

USE模式:正常用户模式。

FIQ模式:快速中断模式,支持高速数据传输。

IRQ模式:普通中断模式。

SVC模式:Supervisor模式,操作系统保护模式,处理软件中断swi,reset.

ABT模式:数据,指令中止模式。

UND模式:未定义模式,支持软件仿真。

SYS模式:系统模式,运行特权操作系统任务。

除用户模式之外的6中模式称为特权模式,特权模式下,程序可以访问所有的系统资源,可以任意的进行处理器模式的切换。

用户模式下不能访问一些受操作系统保护的系统资源,不能直接进行处理器模式切换,需要由应用程序产生异常处理。

特权模式中,除系统模式之外的5种模式称为异常模式。

FIQ要比IRQ的响应快很多,首先FIQ的优先级比较高,再次ARM的FIQ会有自己更多的寄存器,由ARM自动保存。

异常处理过程:将下一条指令存入LR寄存器,CPSR赋值到SPSR,强制设置CPSR运行位,跳转到异常处理函数。

                    返回:将LR中的值减相应的偏移量送到PC中,将SPSR的值到CPSR中。

异常向量表:0x0_0复位Reset,进入SVC模式。

                 0x0_4未定义指令,进入UND模式。

                 0x0_8软件中断,进入SVC模式。

                 0x0_C中止指令,进入ABT模式。

                 0x0_0010中止数据,进入ABT模式。

                 0x0_0014保留

                 0x0_0018IRQ中断,进入IRQ模式。

                 0x0_001CFIQ中断,进入FIQ模式。

 

ARM处理器中一共有37个寄存器。分别有31个通用寄存器:R0-R15, R13_svc, R14_svc, R13_abt, R14_abt, R13_und,

      R14_und, R13_irq, R14_irq, R8_frq-R14_frq。

                                            6个状态寄存器:CPSR, SPSR_svc, SPSR_abt, SPSR_und, SPSR_irq, SPSR_fiq。

R13通常用作堆栈指针。R14通常用作子程序连接。

CPSR当前程序状态寄存器。SPSR备份程序状态寄存器。

31--28:NZCV(Negative Zero Carry Overflow)

278:Reserve

7-5:IFT(IRQ disable FIQ disable State bit)

4-0:Mode bits

0b10用户模式,0b11FIQ模式,0b10010IRQ模式,0b10011SVC模式,0b10ABT模式,

0b11011UND模式,0b11SYS模式。

 

question:为什么会根据Rn的最低位来切换状态呢,最低位是1表示8位对齐而不是16位啊。难道arm本身是16位地址对齐??

关键字:ARM_  处理器模式  寄存器 引用地址:ARM_Core的处理器模式与寄存器

上一篇:ARM处理器模式及寄存器
下一篇:ARM处理器的程序状态寄存器(CPSR,SPSR)访问指令

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

STM8 时钟安全系统寄存器
STM8时钟安全系统寄存器(CLK_CSSR) 地址偏移值:0x08 复位值:0x00 位7:4 保留。始终为0。 位3 CSSD:时钟安全系统监测 由硬件置位或软件写0清除。 0:CSS关或未检测到HSE失效 1:检测到HSE失效 位2 CSSDIE:时钟安全系统监测中断使能 由软件置位或清除 0:时钟安全系统监测中断禁用 1:时钟安全系统监测中断使能 位1 AUX:辅助振荡器连接至主时钟 由硬件置位或清除。 0:辅助振荡器关 1:辅助振荡器(HSI/8)开,并做为当前的主时钟源 位0 CSSEN:时钟安全系统使能 可读,但只能由软件写一次。 0:时钟安全系统关。 1:时钟安全系统开。
[单片机]
STM8 时钟安全系统<font color='red'>寄存器</font>
基于MC74型电路的无线数字温度传感器
   1 概述    将普通传感器与低功耗无线发射控制器和接收装置连在一起就可构成无线传感器,如果将该系统接入因特网(Intemet)甚至还可以组成无线网络传感器。文中介绍利用MC74型集成串行数字温度传感器组成的无线数字温度传感器。   MC74是安森美公司生产的8位串行接口集成数字温度传感器,其温度数据由热传感单元转换而来。MC74的温度分辨率为±1°C,转换速率通常为8次采样/秒。在正常工作条件下,静态电流为200μA(典型值),在待机条件下,静态电流为5μA(典型值)。其他设备与MC74的通信可由2线SM总线,I2C兼容串行总线来实现.该总线可用于多区域监控.配置寄存器CONFIG中的SHDN位可用来激活低功耗待机方式。体
[传感技术]
基于FPGA的移位寄存器流水线结构FFT处理器
   0 引言   快速傅里叶变换(FFT)在雷达、通信和电子对抗等领域有广泛应用。近年来现场可编程门阵列(FPGA)的飞速发展,与DSP技术相比,由于其并行信号处理结构,使得FPGA能够很好地适用于高速信号处理系统。由于Altera等公司研制的FFT IP核,价钱昂贵,不适合大规模应用,在特定领域中,设计适合于自己领域需要的FFT处理器是较为实际的选择。   本文设计的FFT处理器,基于FPGA技术,由于采用移位寄存器流水线结构,实现了两路数据的同时输入,相比传统的级联结构,提高了蝶形运算单元的运算效率,减小了输出延时,降低了芯片资源的使用。在OFDM系统的实际应用中,因它可以采用快速傅里叶变换,能方便快捷地实现调制和解调,
[嵌入式]
基于FPGA的移位<font color='red'>寄存器</font>流水线结构FFT<font color='red'>处理器</font>
51单片机中断控制寄存器
51单片机中断控制寄存器有4个:TCON(定时器控制寄存器),SCON(串行口控制寄存器),IE(中断允许控制寄存器),IP(中断优先级控制寄存器)。 51单片机中断系统: TCON(定时器控制寄存器): IE(中断允许控制寄存器): IP(中断优先级控制寄存器): SCON(串行口控制寄存器): TMOD(定时计数器工作方式控制寄存器):
[单片机]
51单片机中断控制<font color='red'>寄存器</font>
STM8 STM8S208MB寄存器
引脚类型 寄存器 STM8S208MB寄存器采用LQFP80封装,此处的80就表示都会 有80个引脚,其中68个引脚是GPIO。按 GPIO 端口功能分类,依次是 PA 组GPIO端口有6个(PA1-PA6) PB 组GPIO端口有8个(PB0-PB7) PC 组GPIO端口有8个(PC0-PC7) PD 组GPIO端口有8个(PD0-PD7) PE 组GPIO端口有8个(PE0-PE7) PF 组GPIO端口有6个(PF0,PF3-PF7) PG 组GPIO端口有8个(PG0-PG7) PH 组GPIO端口有8个(PH0-PH7) PI 组GPIO端口有8个(PI0-PI7) STM8S208MB 每一个端口寄存器位驱
[单片机]
STM8 STM8S208MB<font color='red'>寄存器</font>
ARM状态寄存器CPSR SPSR
订阅专栏 ARM的状态寄存器格式如上 位 为条件标志位域,用f 表示; 位 为状态位域,用s 表示; 位 为扩展位域,用x 表示; 位 为控制位域,用c 表示; 显然,常用的只有条件标志位域f和控制位域c。 如果需要操作状态寄存器,比如切换处理器模式,就需要修改控制位域中的模式位。 MRS: 程序状态寄存器到通用寄存器的数据传送指令 MSR: 通用寄存器到程序状态寄存器的数据传送指令 附: M控制位控制处理器模式,具体含义如下: M 处理器模式 可访问的寄存器 ob10000 user pc,r14~r0,CPSR 0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SP
[单片机]
ARM状态<font color='red'>寄存器</font>CPSR SPSR
S3C2440的中断寄存器的分类及中断的过程分析
S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND,而EINT8~23对应的也是SRCPND一位。 1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。 1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。 寄存器: EXTINT0-EXTINT2:分别设置EINT0—EINT7、E
[单片机]
S3C2440的中断<font color='red'>寄存器</font>的分类及中断的过程分析
如何学习51单片机
学过51单片机的人,都知道这个学习的过程可能不是那么“美好”,所以,今天给大家介绍一些关于51单片机的学习方法。 1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。 2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。 3、汇编语言在工作中很少用到,了解就好。 4、51单片机的P0口很特别。 5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。 当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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