如何在linux内核模块中添加RTC定时器

如何在linux内核模块中添加RTC定时器,c,linux-kernel,kernel,linux-device-driver,C,Linux Kernel,Kernel,Linux Device Driver,我想在内核模块中指定的时间之后启动任务,我怀疑应该通过rtc.h来完成 例如,我需要每50毫秒向我的外部看门狗发送踢信号。 是否有任何示例演示如何在linux内核模块中实现rtc计时器?我上面的评论可能是错误的。显然,这在内核空间是可能的 drivers/rtc/interface.c中有一个函数集合,它可能会让您随心所欲。 它们是rtc_初始化_报警(),rtc_设置_报警() 对于像看门狗这样的东西,您只需要使用常规的相对时间计时器(添加_timer()和朋友)。您可以使用rtc_set_a

我想在内核模块中指定的时间之后启动任务,我怀疑应该通过rtc.h来完成

例如,我需要每50毫秒向我的外部看门狗发送踢信号。
是否有任何示例演示如何在linux内核模块中实现rtc计时器?

我上面的评论可能是错误的。显然,这在内核空间是可能的

drivers/rtc/interface.c中有一个函数集合,它可能会让您随心所欲。 它们是rtc_初始化_报警(),rtc_设置_报警()


对于像看门狗这样的东西,您只需要使用常规的相对时间计时器(添加_timer()和朋友)。您可以使用rtc_set_alarm()来执行“2014年1月1日01时13分执行此操作”之类的操作。

向看门狗发出信号不需要rtc。它也应该从用户空间触发,而不是从内核空间触发。(触发器应该在用户空间启动。您可能需要一些内核支持,可以使用现有的看门狗框架作为常规看门狗来实现。)好的,看门狗不是一个好例子。我的主要问题是如何在内核模块中启动rtc定时器。我需要在指定的时间后运行任务。实际上,这也是您几乎可以肯定应该在用户空间中执行的操作。关于如何在drivers/RTC中注册和实现RTC驱动程序,有很多例子,但我认为没有从内核访问RTC驱动程序的框架。不幸的是,我找不到我找不到任何使用示例如何使用这些函数正确初始化计时器(延迟报警)