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

 我来答
钞芷旁和
2020-04-02 · TA获得超过3876个赞
知道大有可为答主
回答量:3145
采纳率:29%
帮助的人:230万
展开全部
异常和中断
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]来屏蔽。
注意:进入异常会引起处理器模式转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式