2013-12-18 43 views
1

我想在我的內核模塊的硬指定時間後啓動任務,我懷疑它應該通過rtc.h完成。如何在linux內核模塊中添加RTC定時器

例如,我需要每隔50毫秒發送一次腳踏信號給外部看門狗。 是否有任何示例演示如何在Linux內核模塊中實現rtc定時器?

+0

信令看門狗不應該需要RTC。它也應該從用戶空間觸發,而不是從內核空間觸發。 (*觸發器應該從用戶空間開始,可能需要一些內核支持,可以使用現有的看門狗框架作爲常規看門狗來實現。) –

+0

OK,看門狗不是很好的例子。我的主要問題 - 如何在內核模塊中啓動rtc定時器。我需要在指定的時間之後運行任務。 – Yuri

+0

這實際上也是您幾乎可以肯定應該從用戶空間完成的事情。有很多關於如何在drivers/rtc中註冊和實現RTC驅動程序的例子,但我不認爲有從內核訪問它的框架。 –

回答

0

我上面的評論可能是錯誤的。顯然這個可能來自內核空間。

在drivers/rtc/interface.c中有一個函數集合,它可能會讓你做你想做的事。 它們是rtc_initialize_alarm(),rtc_set_alarm(),...

對於像看門狗這樣的事情,你只想使用常規的相對時間計時器(add_timer()和朋友)。你會用rtc_set_alarm()來處理'01/01/2014 at 01:13'這樣的事情。

+0

不幸的是我找不到任何用法示例,如何正確初始化這些函數的定時器(延遲警報) – Yuri