在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2182|回复: 0

[资料] 异常中断向量表和优先级

[复制链接]
发表于 2015-12-7 18:44:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

中断向量表中指定了各异常中断与处理器程序的对应关系。它通常存放在存储地址的低端。在ARM体系结构中,异常中断向量表的大小为32字节。其中,每个异常中断占据4字节大小,保留4字节空间。

每个异常中断对应的中断向量表的4字节空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令。通过这2种指令,程序将跳转到相应的异常中断处理程序处执行。

在表中,存储器的前8个字中除了地址0x00000014之外,全部被用作异常矢量地址。这是因为在早期的26位地址空间的ARM处理器中,曾使用地址0x00000014来捕获落在地址空间之外的LoadStore存储器地址。这些陷阱称为“地址异常”,因为32位的ARM不会产生落在其32位地址空间之外的地址,所以地址异常在当前的体系结构中不起作用,0x00000014的矢量地址也就不再使用了。

当几个异常中断同时发生时,就必须按照一定的顺序来处理这些异常中断。在ARM中通过给各异常中断赋予一定的优先级来实现这种处理顺序。优先级如下:


复位(最高优先级)


数据异常中止


FIQ


IRQ


预取指异常中止


SWI、未定义指令(包括缺协处理器),着两者是互斥的指令编码,因此不能同时发生。

复位是优先级最高的异常中断,这是因为复位从确定的状态启动微处理器,使得所有其他未解决的异常都没有关系了。

处理器在执行某个特定中断的过程中,称处理器处于特定的中断模式。各异常中断的处理优先级如表所列

最复杂的异常莫过于FIQIRQ和第三个异常同时发生的情形。FIQIRQ的优先级高,会将IRQ屏蔽,所以IRQ将被忽略,直到FIQ处理程序明确的将IRQ使能或返回用户代码为止。

如果第3个异常是数据中止,则因为进入数据中止异常并未将FIQ屏蔽,所以处理器将在进入数据中止处理程序后,立即进入FIQ处理程序。数据中止将“记”在返回路径中,当FIQ处理程序返回时进行处理。

如果第3个异常不是数据中止,则将立即进入FIQ处理程序。当FIQIRQ两者都完成时,程序返回到产生第3个异常的指令,在余下的所有情况下,异常将重现并做相应处理。

凌阳教育,专注嵌入式人才培养13年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 05:37 , Processed in 0.032733 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表