射频和无线供应商和资源的家

一站式满足您的射频和无线需求

ARM异常和中断控制器

本教程介绍了ARM异常和中断控制器。有关其他ARM教程内容,请参阅以下页面。

ARM教程page1
ARM教程第二页
ARM教程第3页
ARM教程第4页
ARM教程第5页
ARM教程第6页

手臂矢量表

异常/中断 速记 地址 高地址
重置 重置 0 x00000000 0 xffff0000
未定义指令 UNDEF 0 x00000004 0 xffff0004
软件中断 瑞士 0 x00000008 0 xffff0008
预取中止 PABT 0 x0000000c 0 xffff000c
数据中止 DABT 0 x00000010 0 xffff0010
保留 - 0 x00000014 0 xffff0014
中断请求 硬中断请求优先级别 0 x00000018 0 xffff0018
快速中断请求 FIQ 0 x0000001c 0 xffff001c

重置:

当处理器启动时发生。初始化系统,为不同的处理器模式设置堆栈。在进入复位处理程序时,CPSR处于SVC模式,IRQ和FIQ位都被设置为1,屏蔽任何中断

数据中止:

第二优先级。当我们试图读/写一个无效的地址或访问错误的访问权限时发生。在进入数据中止处理程序时,IRQ将被禁用(I-bit集1),而FIQ将被启用IRQ被屏蔽,但FIQ保持未屏蔽。

FIQ:

最高优先级中断IRQ和FIQ被禁用,直到FIQ被处理。

硬中断请求优先级别:

第2高优先级中断IRQ处理程序只在没有FIQ和数据中止正在进行时输入。

预取中止:

类似于数据中止,但发生在地址获取失败时。在进入处理程序时,irq被禁用,但fiq仍然是启用的,并且可以在预取中止期间发生。

简单中断系统

瑞士:

软件中断(SWI)异常发生在SWI指令执行时,没有其他高优先级异常被标记。

未定义指令:

未定义指令异常发生在不在ARM或Thumb指令集中的指令到达管道的执行阶段时,并且没有其他异常被标记。与SWI相同的优先级,因为一次可以发生一个。意思是被执行的指令不能同时是SWI指令和未定义指令。

状态图

ARM异常处理

发生异常时,会发生以下事件:
•将CPSR保存到异常模式的SPSR中。
•PC存储在例外模式的LR中。
链接寄存器被设置为基于当前指令的特定地址。例如,对于ISR, LR =最后执行的指令+ 8
•更新CPSR异常信息
•将PC设置为异常处理程序的地址。


分享本页

翻译本页
Baidu