1 / 2
文档名称:

[M3 SN]M3中断优先级.doc

格式:doc   大小:77KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

[M3 SN]M3中断优先级.doc

上传人:260933426 2017/8/22 文件大小:77 KB

下载得到文件列表

[M3 SN]M3中断优先级.doc

相关文档

文档介绍

文档介绍:1. 中断优先级
中断概述
正常的程序被暂时中止,处理器便进入异常。所有异常可以通过NVIC(嵌套向量中断控制器)进行控制,通过NVIC 可以设置各个异常的优先等级并对异常进行处理。异常可分为系统异常和外部中断,它们通过不同的寄存器组进行控制(包括优先级的设置)。系统异常和外部中断及优先级关系如图 1 所示。
图 1 异常类型
图 1 中的位置号也即各个异常的中断号,处理器根据中断号从向量表中取出异常处理
函数的入口(指针)。
中断方式
Cortex-M3 处理器以其灵活的异常机制在同类中脱颖而出,其异常可以通过占先、末尾
连锁和迟来等处理来降低中断的延迟。
优点:ARM7TDMI-S 中断响应需要24-42 个时钟,而Cortex-M3 只需要12 个时钟周期。
异常基于优先级而采取的动作主要有四种:占先、末尾连锁、返回和迟来,如表 1 所示。
表 1 异常基于优先级的动作
动作
描述
占先
产生条件:新的异常比当前的 ISR 或线程的优先级更高

发生时刻:ISR 或线程正在执行

中断结果:当前处于线程状态,则进入挂起中断;当前处于ISR 状态,则产生中断嵌套

附加动作:处理器自动保存状态并压栈
末尾连锁
产生条件:新的异常优先级比当前正在返回的 ISR 的优先级更高

发生时刻:当前ISR 结束时

中断结果:跳过出栈操作,将控制权转向新的ISR
返回
产生条件:没有新的异常或没有比被压栈的 ISR 优先级更高的异常

发生时刻:当前ISR 结束时

中断结果:执行出栈操作,并返回到被压栈的ISR 或线程模式

附加动作:自动将处理器状态恢复为进入ISR 之前的状态
迟来
产生条件:新的异常比正在保存状态的占先优先级更高

发生时刻:当前ISR 开始时

中断结果:处理器转去处理优先级更高的中断
中断优先级
中断优先级使中断变得更加的灵活多变,它决定了处理器何时以及怎样处理异常,这样,对待中断就可以随心所欲了。
异常可分为系统异常和外部中断,那么异常优先级也可分为系统异常优先级和外部中断优先级。
所有的异常本身具有硬件优先级,其硬件优先级顺序决定于如图 1 中的位置号(中断号),中断号越低,硬件优先级越高。也可以通过软件来设置异常的优先级,称为软件优先级。它只可以改变可调整优先级的异常,即除了复位、NMI 和硬件故障异常外,其它中断的优先级都可以通过寄存器配置。
异常一旦指定软件优先级后,硬件优先级则无效。
注:软件优先级的设置对复位,NMI,和硬故障无效。它们的优先级始终比其他中断要高。复位(优先级-3),NMI(优先级-2),和硬故障(优先级-1)。
用户可设置的最高优先级为 0 号优先级,其仅次于复位,NMI 以及硬件故障的第4 优先级。0 号优先级也是所有可调整优先级的默认优先级。如果有两个或更多的中断指定为相同的优先级(例如优先级全为0),那么它们的硬件优先级(位置编号越低优先级越高)就决定了处理器激活这些中断的