网上有关“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
评论列表(4条)
我是迪紫号的签约作者“kpedzd”!
希望本篇文章《ARM处理器中,引起异常的原因是什么-》能对你有所帮助!
本站[迪紫号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上有关“ARM处理器中,引起异常的原因是什么?”话题很是火热,小编也是针对ARM处理器中,引起异常的原因是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临...