The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"проблема 'засыпания' модуля ядра в Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"проблема 'засыпания' модуля ядра в Linux"  
Сообщение от hex (??) on 16-Июн-06, 20:40 
проблема такая. существует устройство, котрое не известно в какой момент времени начинает передавать данные в порт ПК, при этом гененрация аппаратных прерываний не возможно. напросилось решение задачи - опрашивать порт в бесконечном цикле, дабы отслеживать его состояние. написал пользовательское приложение - работает, встала задача оформить это в виде драйвера - возникла проблема, при заходе в этот цикл ядро засыпает. помогите решить эту проблему. такие функции как msleep не помогут, т.к. опрос порта необходимо производить не реже чем раз в 1 микро секунду. заранее спасибо!
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "проблема 'засыпания' модуля ядра в Linux"  
Сообщение от jd (??) on 17-Июн-06, 04:26 
Можно установить обработчик IRQ 8, предварительно настроив правильным образом таймер. Но лучше всё-таки переделать устройство (или разобраться с ним), так как (в зависимости от процессора) накладные расходы при таком частом переключении могут быть очень высоки.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "проблема 'засыпания' модуля ядра в Linux"  
Сообщение от hex (??) on 17-Июн-06, 16:44 
>Можно установить обработчик IRQ 8, предварительно настроив правильным образом таймер. Но лучше
>всё-таки переделать устройство (или разобраться с ним), так как (в зависимости
>от процессора) накладные расходы при таком частом переключении могут быть очень
>высоки.

к сожалению, переделать устройство не представляется возможным, это заводской аппарат работает через интерфейс wiegand. поэтому не имеет выходного кантакта, который можно было бы пустить на гененрацию аппаратного прерывания. может быть можно как-нибудь заставить ядро контролировать изменение состояния 0x378 порта ввода-вывода и гененрировать при этом программное прерывание(???), соответственно в качестве обработчика этого прерывания зарегистрировать мою функцию.
у меня так же была идея использовать очередь задач, но по каким то причинам ядро не утруждает себя передавать ресурсы функции из очереди по тому таймингу который установлен.
вообщем, полный атас!
прошу всех кто в этом хоть чуть разбираеться помочь. спасибо.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "проблема 'засыпания' модуля ядра в Linux"  
Сообщение от hex (??) on 17-Июн-06, 19:41 
а вообще то, если крепко почесать репу, то с RTC может и получиться. Пошел репу чесать:)
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру