您的位置 首页 资料

ARM_Core的处理器形式与寄存器

ARM处理器的工作状态: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位地址对齐??

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/276806.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部