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

rtc.c好像不是rtc驱动程序

    来源: 互联网  发布时间:2016-12-29

    本文导语:  我想读一读x86平台上的rtc驱动代码,而且想把自己的中断处理程序挂在IRQ 8上。选择rtc支持后重新编译内核,IRQ 8可以工作起来。但是不能将自己的驱动程序挂在IRQ 8上。我检查了drivers/char/rtc.c,发现x86平台上IRQ 8的...

我想读一读x86平台上的rtc驱动代码,而且想把自己的中断处理程序挂在IRQ 8上。选择rtc支持后重新编译内核,IRQ 8可以工作起来。但是不能将自己的驱动程序挂在IRQ 8上。我检查了drivers/char/rtc.c,发现x86平台上IRQ 8的中断处理程序的注册:
                         request_irq(RTC_IRQ, rtc_int_handler_ptr, IRQF_DISABLED,"rtc", NULL)
只用了IRQF_DISABLED,没有用IRQF_SHARED,所以我的中断处理无法注册。但是修改代码改为IRQF_SHARED后任然不能注册。我猜想可能rtc.c不是rtc的驱动程序。然后查找代码,发现真正的驱动程序应该是drivers/rtc/rtc-cmos.c,其中:
                       retval = request_irq(rtc_irq, rtc_cmos_int_handler,
                               IRQF_DISABLED, dev_name(&cmos_rtc.rtc->dev),
                               cmos_rtc.rtc);
将IRQF_DISABLED修改为IRQF_SHARED后,我的中断处理程序就可以注册了。我有两个问题想问一下:

1. 是不是drivers/rtc.c已经被废弃?如果废弃,为什么还出现在内核代码中?
2. 默认情况下rtc的中断好像是屏蔽的,如果要触发rtc的周期中断就要通过写入/dev/rtc0来实现(只是我了解的情况),能不能再内核中直接调用某个内核函数来启动周期中断?

|
driver下面的rtc.c是驱动吧。我记得我以前就是在这个目录下找到rtc的驱动代码的。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • rtc时钟掉电后不能保存?
  • 实时时钟RTC和系统定时器的联系?
  • RTC驱动测试函数read_time怎么写?
  • RTC通过IRQ0产生的时钟中断的作用? iis7站长之家
  • RTC寄存器的配置,分寄存器值不变
  • rtc.io
  • 开源的网络实时语音视频框架 rtc
  • 自己搞不定了,向大家请教s3c2440的RTC驱动
  • RTC通过IRQ0产生的时钟中断的作用?
  • 奇怪的rtc_test


  • 站内导航:


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

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

    浙ICP备11055608号-3