ARM处理器中,引起异常的原因是什么-

网上有关“ARM处理器中,引起异常的原因是什么?”话题很是火热,小编也是针对ARM处理器中,引起异常的原因是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临...

网上有关“ARM处理器中,引起异常的原因是什么?”话题很是火热,小编也是针对ARM处理器中,引起异常的原因是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

异常和中断

1.ARM

处理器复位后,处理器硬件将进行如下操作:

(1)

强制进入管理模式;

(2)

强制进入到

ARM

状态;

(3)

跳转到绝对地址

PC=0x00000000

出执行;

(4)

禁止

IRQ

中断和

FIQ

中断。

复位后

CPSR

中最后

4

位状态为

0011,并且进入管理模式,执行操作系统程序,

一般用做对系统的初始化,然后切换到用户模式,开始执行正常的用户程序,切

换到用户模式可以使用如下程序:

MRS

R0,CPSR

;读程序状态寄存器

BIC

R0,R0,#03

;把末两位清零

MSR

CPSR_c

,R0

;把修改后的值加载给状态寄存器,切换结束

ADD

R1,R2,R3

;用户程序

2.未定义异常

.

ARM

处理器中有很多没有定义的代码,因为

ARM

使用

32

位代码,包含

2

31

次幂种。所以

ARM

指令集不能用尽所有的代码。

ARM

的未定义异常有两种情况:

(1)

遇到一条无法执行的指令,此指令没有定义;

(2)

执行一条协处理器的操作指令,在正常情况下,协处理器应该应答,但是

没有,可能是因为干扰等原因。

但是一般情况下是不希望产生异常的,如果是由于干扰引起的异常,那么在

异常中断处理中有一段专门的程序,让程序返回再重新执行该条指令,以判

断异常是否是由干扰引起。

当然也要注意哪种单片机应该使用哪种合适的指令集版本,因为还是约

有差异的,否则某些编译通过的指令也不能执行。

3.

软件中断异常

软件中断异常是由指令

SWI

引起的,

程序执行这一条指令后,

进入异常中断。

处理器响应中断,硬件执行图如下:

软件中断处理程序完成后,使用下列返回指令返回到原中断处:

MOVS

PC

,

R14

软件中断异常把程序导入管理模式,而子程序调用属于用户模式。

4.

预取指中断异常

。。。

。。

预取指中断异常和未定义指令异常都是由于不正常的指令国产引起,但是也

有区别:

(1)

未定义指令异常是内部异常中断,而他是外部信号引起的异常中断;

(2)

他并没有成功地取得一条指令。

他中断返回时,应该执行指令:SUBS

PC

,

R14

,

#4

5.数据中止异常

.

。。。

。。。

6.中断请求(IRQ)异常

.

ARM

处理器中,有一个输入逻辑

nIRQ

称为中断请求信号,这个输入信

号是由

ARM

处理器外围控制模块(片内)控制,当有满足中断条件的事件发生

时,

外围控制模块向

ARM

处理器发错

IRQ

信号,

ARM

处理器进入异常,

使

IRQ

中断是常用的中断,就像

51

系列单片机中定时器中断、串口中断、外部中断等。

CPSR[7]

IRQ

完成中断处理后,

程序应该执行下列指令返回到原中断处:

SUBS

PC

,

R14

,

#4

7.

快速中断(FIQ)请求异常

ARM

处理器中,有一个输入逻辑

nFIQ

称为中断请求信号,这个输入信

号是由

ARM

处理器外围控制模块(片内)控制,当有满足中断条件的事件发生

时,

外围控制模块向

ARM

处理器发错

FIQ

信号,

ARM

处理器进入异常。

使

FIQ

中断可以通过

CPSR[6]来屏蔽。

注意:进入异常会引起处理器模式转换。

fiq是什么文件

清除cpsr的中断禁止位的通过设置CPSR的I、F控制位设置中断。

0XC0的二进制位11000000,对应到CPSR的控制位,即低8位。

中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。BIC(BitClear)位清零指令,将寄存器Rn的值与第2个源操作数shifter_operand的值的反码按位做“逻辑与”操作,结果保存到Rd中。

快速中断请求(Fast Interrupt Request,FIQ)

在ARM中,FIQ模式是特权模式中的一种,同时也属于异常模式一类。用于高速数据传输或通道处理,在触发快速中断请求(FIQ)时进入。

FIQ和IRQ(外部中断模式)之间有很大的区别。FIQ模式必须尽快处理,处理结束后离开这个模式;IRQ模式可以被FIQ模式中断,但IRQ不能中断FIQ模式;为使FIQ模式相应更快,FIQ模式具有更多的影子(Shadow)寄存器。FIQ模式必须禁用中断;如果一个中断例程必须重新启用中断,应使用IRQ模式而不是FIQ模式。

关于“ARM处理器中,引起异常的原因是什么?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[kpedzd]投稿,不代表迪紫号立场,如若转载,请注明出处:https://kpedzd.cn/bkdq/202501-108255.html

(6)

文章推荐

发表回复

本站作者后才能评论

评论列表(4条)

  • kpedzd
    kpedzd 2025年01月18日

    我是迪紫号的签约作者“kpedzd”!

  • kpedzd
    kpedzd 2025年01月18日

    希望本篇文章《ARM处理器中,引起异常的原因是什么-》能对你有所帮助!

  • kpedzd
    kpedzd 2025年01月18日

    本站[迪紫号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • kpedzd
    kpedzd 2025年01月18日

    本文概览:网上有关“ARM处理器中,引起异常的原因是什么?”话题很是火热,小编也是针对ARM处理器中,引起异常的原因是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临...

    联系我们

    邮件:迪紫号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们