末尾连锁

2019-03-24 15:35发布

请问下中断中的末尾连锁有和作用 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
Triton.zhang
2019-03-25 18:45

楼主的问题实际上是两个问题,

1. 尾链是什么用的?

2. M3的中断优先级机制?

3. 我先回答第一个问题

1) 在M3之前的MCU在处理中断时一般都采用如下的过程:

     中断1发生 -> 现场保护1 -> 中断1处理 -> 现场恢复

2) 如果在中断1发生之后,未处理结束之前,和中断1优先级相同的中断2也发生了,这个时候的处理过程如下:

     中断1发生 -> 现场保护1 -> 中断1处理 -> 现场恢复

          中断2发生.................................................................-> 现场保护2 -> 中断2处理 -> 现场恢复

    从上面的过程我们可以看出,实际上我们进行了2次同样的现场保护,即现场保护1和现场保护2, 也进行了2次同样的现场恢复。

    M3的内核对这个过程进行了优化,在中断1处理完后,并不急于恢复现场,而是判断是否由另外的中断2发生,如果有则不退出中断处理,而是直接进入中断2处理程序。

    处理流程如下:

     中断1发生 -> 现场保护1 -> 中断1处理 ->

          中断2发生...........................................中断2处理 -> 现场恢复

 

3) 总结一下,由上描述可知,尾链技术是为了简化两个相同优先级的中断的切换过程。

 注意: 这里讲的相同优先级是指两个中断不能互相打断,而不是绝对的相等。M3采用中断优先级编号和组号来管理中断的优先级。使用者需要了解这个机制才能正确的设置各个中断源的处理流程。

 

4. 关于第二个问题,请参见我对M3中断优先级的描述: http://bbs.eeworld.com.cn/viewthread.php?tid=301771&highlight=

[ 本帖最后由 Triton.zhang 于 2011-10-1 00:33 编辑 ]

一周热门 更多>

相关问题

    相关文章