打印
[STM32F1]

关于ucos临界段中的中断问题

[复制链接]
984|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shijianwei2423|  楼主 | 2015-4-16 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
都知道在跑ucos的时候,临界段是不允许中断的,那么此时如果有外部中断,是不是意味着这个中断会丢失???还是说中断标志位会置位,等退出临界段后执行中断程序
沙发
香水城| | 2015-4-17 13:43 | 只看该作者
这取决于MCU的中断控制器是如何做的。

如果一个中断不能被即刻响应,就称它被挂起(pending)。在Cortex-M内核中实现的NVIC中断控制器,对于每个中断源,在被挂起的情况下都会有一个对应的“挂起状态寄存器”保存其中断请求,待到中断能够被响应时再执行它的中断服务程序。

这与以往的ARM内核完全不同。以前都是由设备保持住请求信号。因此即使设备在后来释放了请求信号,曾经的中断请求也不会错失。

使用特权

评论回复
板凳
myxiaonia| | 2015-4-18 08:51 | 只看该作者
香水城 发表于 2015-4-17 13:43
这取决于MCU的中断控制器是如何做的。

如果一个中断不能被即刻响应,就称它被挂起(pending)。在Cortex-M ...

哇哇,技术帝的香水君又回来了。。。。应该不是10年那位吧。。。。

使用特权

评论回复
地板
airwill| | 2015-4-18 10:42 | 只看该作者
香水城 发表于 2015-4-17 13:43
这取决于MCU的中断控制器是如何做的。

如果一个中断不能被即刻响应,就称它被挂起(pending)。在Cortex-M ...

Cortex-M 内核多了个挂起寄存器保存中断请求。而一般的 mcu 都由外设保持中断请求信号。
虽说这个中断挂起保证了中断得到的响应。但不认为这就一定是优势,一般的 mcu 外设通常也会保持中断请求 (包括定时器,各类通讯口),唯一不保证的我看就是那个外部电平触发中断。而对于这种情况,如果触发电平已经消失,那么外部状态已经变化,通常这个时候再响应中断的话,也解决不了啥问题,就是控制丢失的纪录和警报罢了。

使用特权

评论回复
5
myxiaonia| | 2015-4-19 16:43 | 只看该作者
airwill 发表于 2015-4-18 10:42
Cortex-M 内核多了个挂起寄存器保存中断请求。而一般的 mcu 都由外设保持中断请求信号。
虽说这个中断挂 ...

确实  某些和上下文相关的中断  保持中断也没用  已经丢失消息了

使用特权

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

本版积分规则

3

主题

17

帖子

0

粉丝