打印
[应用相关]

ST7外部中断疑问

[复制链接]
1994|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juanhao|  楼主 | 2007-4-18 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果有A,B两个中断,A的中断优先权高,B的低,当在执行A中断服务程序的时候,B的中断产生,那么ST7是如何处理,是不理会还是挂起等到A中断服务程序退出再响应B?
沙发
juanhao|  楼主 | 2007-4-18 11:27 | 只看该作者

对浪淘沙的留言有个疑问!!

浪淘沙的留言:

首先你要明白,硬件的中断嵌套功能是指,当CPU响应某个中断请求时,处理该中断的过程,可以被软件中断级别比它高的中断所打断;在这里硬件的支持中断嵌套引入了一个软件中断级别的概念,通常我们说的中断级别称为硬件中断级别。

硬件中断级别的概念是,当两个中断源同时发出中断请求时,CPU首先响应级别高的中断请求;当CPU正在处理较低优先级的中断请求时,CPU在处理完该请求之前不能响应任何新的中断请求,即使新请求的优先级较高。
/*------------------------------------------------------------------
引入了软件中断的概念之后,上述限制被放宽了,即当CPU正在处理一个中断请求时,CPU可以响应软件(不是硬件)中断优先级较高的中断请求。
-------------------------------------------------------------------*/

明白了上述原理后,你的问题变得简单了;你只需在一个中断的处理程序中,打开中断允许位,这样任何新到的中断请求都会被响应,不同的是没有了软件中断级别的裁决。

我的问题:
        针对打了注释的一段我有个问题:当CPU正在处理一个中断请求时,产生软件优先级低的请求会在退出当前中断服务程序后执行吗?


使用特权

评论回复
板凳
8bit_mcu| | 2007-4-18 16:24 | 只看该作者

是这样的

ST7根据芯片型号不同,其中断控制部分也有所不同,区别在于有些支持嵌套中断,而有些不支持。

对于不支持嵌套中断的st7来说,没有软件优先级一说,当cpu正在处理一个中断请求时,若有其他中断产生,不管它的硬件优先级高还是低,都要等到当前中断处理完以后,才会响应下一个中断(除了不可屏蔽中断外)。硬件优先级只是用于在同时有两个外部中断被挂起时,硬件优先级高的会先被响应。

对于支持嵌套中断的ST7来说,当cpu正在处理一个中断时,若有软件优先级高的中断请求,则中断当前的中断处理,转而处理软件优先级高的中断。处理完后,再回去处理上次没有处理完的中断。

使用特权

评论回复
地板
taitaijing| | 2011-11-25 21:27 | 只看该作者
这个东西很有指导意义,谢谢。

使用特权

评论回复
5
wangshi| | 2011-11-25 21:30 | 只看该作者
不错,是个很有用的东东。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

92

主题

187

帖子

0

粉丝