2013-12-18 2 views
1

Я хочу запустить задачу после жесткого заданного времени в моем модуле ядра, я подозреваю, что это должно быть сделано через rtc.h.Как добавить таймер RTC в модуль ядра linux

Например, мне нужно отправить сигнал удара моему внешнему сторожевому устройству каждые 50 мсек. Есть ли какой-нибудь пример, чтобы продемонстрировать, как реализовать таймер rtc в модуле ядра Linux?

+0

Сигнализация сторожевого таймера не требует RTC. Он также должен запускаться из пользовательского пространства, а не из пространства ядра. (* Trigger * должен начинаться с пользовательского пространства. Возможно, вам понадобится поддержка ядра, которая может быть реализована как обычный сторожевой таймер с использованием существующей структуры сторожевого таймера.) –

+0

ОК, сторожевой таймер не очень хороший пример. Мой главный вопрос - как запустить таймер rtc в модуле ядра. Мне нужно запустить задачу после определенного времени. – Yuri

+0

На самом деле это то, что вы почти наверняка должны делать из пользовательского пространства. Существует множество примеров того, как регистрировать и внедрять драйвер RTC в драйверах/rtc, но я не думаю, что есть среда для доступа к нему из ядра. –

ответ

0

Мои комментарии выше, возможно, были неправильными. По-видимому, это есть возможно из пространства ядра.

В драйверах/rtc/interface.c есть набор функций, которые, вероятно, позволят вам делать то, что вы хотите. Это rtc_initialize_alarm(), rtc_set_alarm(), ...

Для таких вещей, как сторожевой таймер, вы просто хотите использовать регулярные таймеры относительного времени (add_timer() и друзей). Вы должны использовать rtc_set_alarm() для таких вещей, как «сделайте это 01/01/2014 в 01:13».

+0

К сожалению, я не могу найти, что не могу найти пример использования, как правильно инициализировать таймер (будильник задержки) с помощью этих функций – Yuri

Смежные вопросы