3.15.嵌套中断,咬尾中断,晚到异常与中断延迟(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CM3利用“晚到异常处理”缩短了高优先级中断延迟时间,提高了高 优先级中断响应速度,节省了堆栈空间。
CM3中断的嵌套、尾链、晚到与延迟
用户程序
优先级3 中断1
优先级2 中断2
继续压栈
中断1
压栈
中 断
中断2
1的

迟来
出栈
口 地



CM3中断的嵌套、尾链、晚到与延迟
中断延迟 从检测到某中断请求,到执行了其服务例程的第一条指令时,所经
➢ 对于除法指令和双字传送指令( LDRD/STRD ),CM3将为了保证中断及时 响应而取消它们的执行,待返回后重新开始;
➢ 对于多寄存器传送指令(LDM/STM) ,为了加速中断的响应,CM3支持指令 执行的中止和继续。
感谢
谢谢,精品课件
资料搜集
ARM Cortex-M3 的STM32系列 嵌套中断,咬尾中断,晚到异常与中断延迟(1)
CM3中断的嵌套、尾链、晚到与延迟
中断嵌套 在Cortex-M3内核以及NVIC,已经内建了对中断嵌套的支持:➢ NVIC会排出优先级解码的顺序; ➢ 自动的硬件入栈和出栈。
注意:使用中断嵌套时,必须仔细计算主堆栈容量,避免堆栈溢出。
过的时间。 在CM3中,若存储器系统够快,且总线系统允许入栈与取指同时进行,
同时该中断可以立即响应,则中断延迟是固定的12周期。 处理尾链中断时,省去了堆栈操作,因此切入新异常服务例程的延迟可
以缩短至6周期。
CM3中断的嵌套、尾链、晚到与延迟
为了不影响中断延迟,对于需要较多的周期才能完成的指令,CM3采用了 以下两种处理方法:
CM3中断的嵌套、尾链、晚到与延迟
尾链中断
当上一个异常处理返回, Cortex-M3响应挂起的异常时,为了 避免浪费CPU时间,继续使用上一个异常已经入栈好的寄存器数据。两 个异常只执行了一次入栈/出栈操作。
Cortex-M3利用“尾链中断”缩短了挂起中断的延迟时间,提高 中断响应速度。
CM3中断的嵌套、尾链、晚到与延迟
用户程序
优先级2 中断1
优先级3 中断2
压栈
无压栈
中断1
中断2
中断1 结束
出栈
如果此时中断1 已经 完成,不出栈也不压 栈,直接跳至中断2 程序
尾链中断也叫咬尾中 断
CM3中断的嵌套、尾链、晚到与延迟
晚到的异常处理
当异常产生时,处理器会接受异常请求并开始入栈操作。若在入栈操 作期间产生了另外一个更高优先级的异常,则后到的高优先级异常会首先得 到服务。
相关文档
最新文档