首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux disable_irq()和local_irq_save()

linux disable_irq()和local_irq_save()
EN

Stack Overflow用户
提问于 2019-11-29 23:43:28
回答 1查看 1.8K关注 0票数 1

我有一个代码,其中有:

代码语言:javascript
复制
disable_irq(irq_clk);
local_irq_save(flags);

我发现disable_irq()禁用了一个特定的中断,另一方面,local_irq_save()禁用了所有的中断。

因此,我想知道上述代码的含义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-30 19:02:12

这是有意义的,因为中断是在不同级别上禁用的。

代码语言:javascript
复制
disable_irq(irq_clk);

此代码在interrupt controller中禁用(掩码)中断。如果在此级别禁用了中断,则不会将中断传递到内部中断控制器管道。它不会被排序,也不会被路由到目标CPU。

代码语言:javascript
复制
local_irq_save(flags);

此代码禁用CPU IRQ接口级别上的所有中断。中断在通过中断控制器的优先级&路由管道并被断言到CPU后,被传递到CPU IRQ接口。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59112033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档