找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3418|回复: 2
打印 上一主题 下一主题
收起左侧

有关uCos-II中关中断处理的疑问

[复制链接]
跳转到指定楼层
楼主
ID:244881 发表于 2017-11-1 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,新人首贴,欢迎大家批评指正。

最近在拜读《嵌入式实时操作系统uCOS-II(第二版)》时,3.7节Idle Task中有如下描述:“空闲任务执行计数器加1操作,中断是先关闭再开启的。”说是因为防止加1操作被高优先级任务或中断服务程序打断,我忽然想到:如果中断被关闭期间,此时恰好来了一个外部IO中断请求,这个中断请求会使得某一个高优先级任务进入就绪态,会不会因为中断被关闭而丢失掉这次请求。虽然说先关闭再开启中断这个过程时间比较短,但理论上是不是还是存在这种可能的?如果是,如何有效避免?欢迎大家一起讨论
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2017-11-2 14:02 | 只看该作者
中断源动作后会做一个标记,这个标记并不因为中断关闭而消失。
CPU会不断地检查中断标记,如果被关闭则不响应。一旦打开,则按优先顺序中断。

所以回答是:
不会丢,再开放后,会中断。
回复

使用道具 举报

板凳
ID:244881 发表于 2017-11-3 11:43 | 只看该作者
yzwzfyz 发表于 2017-11-2 14:02
中断源动作后会做一个标记,这个标记并不因为中断关闭而消失。
CPU会不断地检查中断标记,如果被关闭则不 ...

如果是这样,我就明白了,谢谢!
那同理,如果在关中断期间,触发了多个中断,实际上也是多个中断标志被置位,只是因为关中断的原因,此时不能跳转到中断处理函数进行处理,当再次开中断后,会按照中断优先级进行逐一跳转处理,应该是这样吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表