gpt4 book ai didi

linux - 为端口 0x60 安装中断处理程序的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:12 26 4
gpt4 key购买 nike

我正在编写一个简单的键盘记录器,作为了解 linux 驱动程序的中断和 IO 端口的一种方式。现在从我读过的内容来看,我需要通过...注册中断处理程序

int request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *dev_name, void *dev_id);

但是根据我也读到的内容,如果我在 module_init() 期间调用 request_irq,我将占用中断。我的问题是我想与其他资源共享中断,但我不确定如何调用此中断。我希望我可以使用 module_init() 调用该函数并将我的标志设置为 SA_SHIRQ。我被告知最好的做法是在打开文件期间调用,这允许我设置中断,但我不想依赖于编写一个用户空间程序调用打开“my_dev”以便我可以运行中断处理程序。

谢谢

最佳答案

别担心。 request_irq 不会“占用”中断。它将处理程序放在回调列表中,并在发出中断信号时调用所有处理程序(针对该 IRQ)。

如果您在中断期间所做的工作是繁重的工作,您可能希望仅在驱动程序打开时启用处理 IRQ,以最大限度地减少驱动程序未使用时的系统中断。为此,实现驱动程序打开和关闭调用,并保留引用计数:只有当引用计数 > 0 时,ISR 才会被注册

关于linux - 为端口 0x60 安装中断处理程序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10005149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com