摘要: 问题1:调用irequest_irq注册时,一直失败,其中irequest_threaded_irq在调用irq_to_desc时一直返回NULL,网上的说法是irq是要申请的硬件中断号。在Intel平台,范围0--15。http://blog.csdn.net/lhf_tiger/article/details/7173844注册0--15以内的未使用中断号,果然成功了,不知道为什么??问题2:/proc/interrupts中第一列是中断向量(vector)还是irq号?初步看法是irq号还有,irq号和中断号是不是同一个概念?问题3:ack_APIC_irq()有什么作用? 阅读全文
posted @ 2012-10-30 19:18 godjesse 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 如果希望某个硬件动作发生后,用户能在用户态编写中断处理程序,可以使用内核信号,下面是使用范例。驱动(中断处理):staticirqreturn_t key_interrupt(intirq,void*dev_id,structpt_regs*regs){printk(DEV_NAME" Interrupted!\n");send_sig(SIGUSR1,current,NULL);//send SIGUSR 1returnIRQ_HANDLED;}current是内核是一个全局变量,指向当前在运行的进程。但是内核运行时搜索到特定进程的进程号是个费事的工作,可能要遍历整个进程 阅读全文
posted @ 2012-10-30 09:02 godjesse 阅读(1080) 评论(0) 推荐(0) 编辑