首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在击键中断后初始化一个微线程?

如何在击键中断后初始化一个微线程?
EN

Stack Overflow用户
提问于 2012-08-12 16:31:43
回答 1查看 280关注 0票数 1

我想建立一个内核模块,它将运行一个微线程时,有一个按键的f5键。

我知道如何初始化微线程,但是如何在模块中获取事件呢?如何使用request_irq确定是否按下了f5

EN

回答 1

Stack Overflow用户

发布于 2012-08-13 09:24:56

-

嗨,0x90,

我想您知道,要处理中断,有两个部分。第一部分,上半部分,即中断处理程序,第二部分,下半部分,可以是softirq,微线程,工作队列。

因此,即使你想在一个微线程中实现你想要的所有东西,你也必须确保上半部分,中断处理程序,有机会首先运行。

微线程只是软中断的一种变体,它们在do_IRQ()中调用的irq_exit()中处理。但是,这一流程可能取决于特定的架构。

关于你的问题,我猜可能是在x86平台上。无论按下什么键,总会有一个键盘中断传递给CPU。并且是否按下的键是f5,将在你的微线程中检查,你的中断处理程序可能只需要将代码传递给微线程。

因此,您应该通过调用request_irq()将在微线程之前处理的中断处理程序附加到键盘中断。

更新:

正如Probie所说,您可能希望检查Documentation/目录中的notifier.txt和notifiers.txt。

谢谢。

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

https://stackoverflow.com/questions/11920841

复制
相关文章

相似问题

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