打印

请教个关于中断的小白问题

[复制链接]
1344|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szn1423|  楼主 | 2012-4-5 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天看书看到书上说,有些运行时不可分割的代码,在运行中不允许中断打断,为确保该代码执行,需要先关闭中断,执行完毕后再开启中断。
我想知道,假如有一个定时器中断恰好应该在该代码执行的时间段里面产生中断,关闭掉中断以后,这个定时器中断是不是就失效了?

相关帖子

沙发
airwill| | 2012-4-5 12:03 | 只看该作者
通常中断都可以被挂起(硬件里有个中断请求信号给 CPU, 不得到中断响应, 这信号不会被清除), 定时器中断则都有这个信号, 所以不用担心.

使用特权

评论回复
板凳
liang7143| | 2012-4-5 12:39 | 只看该作者
2L正解
并不会失效,只是会影响实时性。相当于定时器中断被延时执行了

使用特权

评论回复
地板
szn1423|  楼主 | 2012-4-5 12:59 | 只看该作者
哦,那我就放心啦,谢谢楼上两位。
先结贴了。

使用特权

评论回复
5
journeycc| | 2012-4-5 17:51 | 只看该作者
这样啊~

使用特权

评论回复
6
journeycc| | 2012-4-5 17:52 | 只看该作者
俺也小白

使用特权

评论回复
7
szn1423|  楼主 | 2012-4-5 21:02 | 只看该作者
哦,突然想到。。。看门狗定时器也是一样的吧,假如我在操作菜单时,把看门狗关掉,然后退出菜单再开启,不影响看门狗正常使用吧?

使用特权

评论回复
8
程序匠人| | 2012-4-6 09:42 | 只看该作者
关于“不可分割的代码”
——并不是所有的代码都是不可分割的。关键看你怎么分割。真正不可分隔的代码都是很短的。


关于“关闭中断,执行完毕后再开启中断。”
——如果是指定时器中断,关闭中断,只要没关闭定时器,那么中断事件会被保留,等到你再次开启中断时,那个定时中断就会得到执行。

使用特权

评论回复
9
香水城| | 2012-4-6 10:36 | 只看该作者
所谓“不可分割的代码”的目的是为了做某种资源访问的保护,目前多数新型处理器中都设置了相应的保护指令,使用这样的指令则可以避免关闭中断的方式实现“不可分割的代码”,从而大大提高了系统的效率。

使用特权

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

本版积分规则

251

主题

462

帖子

4

粉丝