我正在编写一个简单的按键记录器,作为了解 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。我被告知最好的做法是在打开文件期间调用它允许我设置中断,但我不想依赖编写一个调用 open“my_dev”的用户空间程序,以便我可以运行中断处理程序。
谢谢