проблема такая. существует устройство, котрое не известно в какой момент времени начинает передавать данные в порт ПК, при этом гененрация аппаратных прерываний не возможно. напросилось решение задачи - опрашивать порт в бесконечном цикле, дабы отслеживать его состояние. написал пользовательское приложение - работает, встала задача оформить это в виде драйвера - возникла проблема, при заходе в этот цикл ядро засыпает. помогите решить эту проблему. такие функции как msleep не помогут, т.к. опрос порта необходимо производить не реже чем раз в 1 микро секунду. заранее спасибо!
Можно установить обработчик IRQ 8, предварительно настроив правильным образом таймер. Но лучше всё-таки переделать устройство (или разобраться с ним), так как (в зависимости от процессора) накладные расходы при таком частом переключении могут быть очень высоки.
>Можно установить обработчик IRQ 8, предварительно настроив правильным образом таймер. Но лучше
>всё-таки переделать устройство (или разобраться с ним), так как (в зависимости
>от процессора) накладные расходы при таком частом переключении могут быть очень
>высоки.к сожалению, переделать устройство не представляется возможным, это заводской аппарат работает через интерфейс wiegand. поэтому не имеет выходного кантакта, который можно было бы пустить на гененрацию аппаратного прерывания. может быть можно как-нибудь заставить ядро контролировать изменение состояния 0x378 порта ввода-вывода и гененрировать при этом программное прерывание(???), соответственно в качестве обработчика этого прерывания зарегистрировать мою функцию.
у меня так же была идея использовать очередь задач, но по каким то причинам ядро не утруждает себя передавать ресурсы функции из очереди по тому таймингу который установлен.
вообщем, полный атас!
прошу всех кто в этом хоть чуть разбираеться помочь. спасибо.
а вообще то, если крепко почесать репу, то с RTC может и получиться. Пошел репу чесать:)