Драйвер: периодический опрос устройства

Взгляд изнутри

Модератор: Модераторы разделов

Ответить
IMB
Сообщения: 2561
ОС: Debian

Драйвер: периодический опрос устройства

Сообщение IMB »

Доброго дня!
Есть драйвер позволяющий управлять устройством по I2C. Необходимо в него встроить следующий функционал - периодический, не циклом, опрос этого же устройства с частотой, скажем, раз в минуту и запись полученных результатов в определенный файл. Чем это лучше реализовать?
Спасибо.
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10
Контактная информация:

Re: Драйвер: периодический опрос устройства

Сообщение BlackStar »

Так информации мало, то предположу, что в драйвер ничего встраивать не надо, а надо написать user space приложение с требуемым функционалом (читать данные из файла-устройства с нужным периодом и писать в файл).
LightLang Team
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Драйвер: периодический опрос устройства

Сообщение deadhead »

/proc/sys ?
[x] close
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10
Контактная информация:

Re: Драйвер: периодический опрос устройства

Сообщение BlackStar »

/dev/
LightLang Team
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Драйвер: периодический опрос устройства

Сообщение IMB »

BlackStar писал(а):
19.10.2009 17:21
Так информации мало, то предположу, что в драйвер ничего встраивать не надо, а надо написать user space приложение с требуемым функционалом (читать данные из файла-устройства с нужным периодом и писать в файл).

Опрос из user-space не подходит. Устройством через этот драйвер управляем по ioctl. И сильно ограничены в ресурсах, конечное изделие на ARM-процессоре с не очень большим объёмом RAM и кучей задач.
На первый взгляд мне нужен poll() и опрос gpio, как вариант, нужного устройства. Вот сейчас ищу информация, может кто-нибудь поделится ссылками, а лучше примерами реализации?
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Драйвер: периодический опрос устройства

Сообщение Stauffenberg »

IMB писал(а):
19.10.2009 17:55
Опрос из user-space не подходит. Устройством через этот драйвер управляем по ioctl

Подобный способ управления для обычных устройств используется редко; основные операции ввода/вывода выполняются с помощью системных вызовов read(2) и write(2).
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Драйвер: периодический опрос устройства

Сообщение IMB »

IMB писал(а):
19.10.2009 17:55
На первый взгляд мне нужен poll() и опрос gpio, как вариант, нужного устройства.

Был не прав. Ни poll(), ни select() мне не подходят так как ожидают изменений на файловых дескрипторах.
Как в ядре можно организовать "cron" который бы выполнял определенную команду через заданные интервалы, бесконечный цикл с задержками не подходит и рассматривается в самую последнию очередь?
Спасибо.
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10
Контактная информация:

Re: Драйвер: периодический опрос устройства

Сообщение BlackStar »

Через таймеры например
LightLang Team
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Драйвер: периодический опрос устройства

Сообщение IMB »

А не затруднит чуть расшифровать или ссылку на пример реализации? Тема новая, не знаю с которого конца ухватиться.
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10
Контактная информация:

Re: Драйвер: периодический опрос устройства

Сообщение BlackStar »

Linux Device Drivers - 7 глава.
LightLang Team
Спасибо сказали:
Ответить