当前位置:  技术问答>linux和unix

关于中断共享的问题:ADC 与触摸屏的中断共享

    来源: 互联网  发布时间:2016-09-14

    本文导语:  在论坛中看到有个哥们敲了段中断共享的程序,我截取了关键的部位: static void adcdone_int_handler(int irq, void *dev_id, struct pt_regs *reg) { if(strcmp(dev_id,DEVICE_NAME)!=0)   return -1;   wake_up(&adcdev.wait); } int __init s3c2410_adc_i...

在论坛中看到有个哥们敲了段中断共享的程序,我截取了关键的部位:
static void adcdone_int_handler(int irq, void *dev_id, struct pt_regs *reg)
{
if(strcmp(dev_id,DEVICE_NAME)!=0)
  return -1;
  wake_up(&adcdev.wait);
}
int __init s3c2410_adc_init(void)
{
int ret;

/* normal ADC */
ADCTSC = 0; //XP_PST(NOP_MODE);

ret = request_irq(IRQ_ADC_DONE, adcdone_int_handler, SA_SHIRQ, DEVICE_NAME, s3c2410_isr_adc);
if (ret) {
return ret;
}

我不理解的是到底dev_id是谁来赋值的,是内核还是写程序的人,然后赋的到底是什么值?
还有就是在中断处理函数中,怎么可以用if(strcmp(dev_id, DEVICE_NAME) !=0)
  return -1
来判断到底是哪个中断???
如果是这样的话,就说了dev_id中的值是设备名咯?那这哥们什么时候将设备名写入到dev_id中,我怎么没看到???????
希望哪些高手看到我的发帖能给我一个解答,谢谢啊!!!

|
首先adcdone_int_handler(int irq, void *dev_id, struct pt_regs *reg) 第三个参数reg在2.6.18之后的内核不再使用了,应该删掉以免warning

这个dev_id就是为了区分共享同一中断的多个设备用的,其内容是自定义的
request_irq的第四个参数既传递给第二个参数的dev_id 

但是,这么做是没有意义的,肯定会匹配,还是要读寄存器判断

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在linux上怎么编写一个模块来提供某个中断的中断处理程序呢?而且有哪些中断可以自己添加中断处理程序呢?
  • Linux 系统中的中断是不是没有中断优先级
  • 请问软件中断的中断号与端口号是什么关系?
  • 中断上下文,进程上下文 ,内核抢占,用户抢占,中断
  • 求助,ADS调试中断2440无法进入中断服务。。。
  • 除零中断那些中断是怎么工作的?
  • 求教:一进程执行过程中被同一外部中断程序大量反复中断会不会引起内核栈溢出?
  • 问专家们 一个问题,为什么在中断嵌套过程中或者中断处理过程中不能发生进程的调度?
  • kernel 什么时候可以中断 什么时候不可以中断
  • 在Linux驱动中如何开中断和关中断?
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 中断延迟和中断响应、调度延迟的关系?谁来讲讲?
  • linux内核中的中断向量号是如何与硬件的中断Pin关联的?
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • ucosII 移植到arm 用ads,关于关中断、开中断
  • 检测不到中断,无法进入中断处理程序。
  • linux中断处理 如何调用内核的中断操作
  • Linux驱动中注册的中断号与实际的硬件中断号的关系
  • 中断函数用法的问题
  • 内核会丢中断吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3