Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Zahar Kiselev                        2:5030/382.1   20 Dec 2004  22:47:52
 To : Ilya Anfimov
 Subject : Re: драйвер
 -------------------------------------------------------------------------------- 
 
 
 Dec 20 20:20 04, Ilya Anfimov wrote to Zahar Kiselev:
 
  IA>  А  вообще,  ioctl  must  die.  Всё  лучше  представлять  в  виде
  IA> двунаправленного потока, с максимум одной OOB командой: reset.
 
 А как, если не через IOCTL, устанавливать настройки карты? Просто писать их в
 тот же файл устройства, откуда читаются данные? Технически возможно, но что-то
 не приходилось слышать чтобы где-то так делалось...
 
  IA> сетевизмы переориентироваться проще будет.
 
 В данном случае сетевизмов не предполагается. Во всяком случае - передачи
 исходных данных с карты - точно. Построенный график начальству на email послать 
 после завершения экспериментов - другое дело. Правда надо еще научить это
 начальство смотреть графики, представленные не в виде бумаги.:)
  >> порция данных может там остаться с момента предидущего чтения - ведь 
  >> карта "наполняет" буфер асинхронно по отношению к читающей программе...
  IA>  Сбрасывать  по  каждой  команде. 
 
 Допустим команда чтения опустошит буфер от накопленных _готовых_ пакетов по N
 байтов. Hо последний пакет может быть к этому моменту еще не готов(незаполнен до
 конца). Убивать его нельзя, читать - тоже. Получается довольно сложная обработка
 в драйвере. То есть фактически _символьное_ устройство придется заставить
 выдавать данные _блоками_. Hасколько я знаю - что-то подобное делается в
 драйверах карточек видеозахвата - там один пакет данных равен одному
 (полу)кадру. Делать также? 
 
  >>
  >> Если делать драйвер только под данное конкретное применение этой платы 
  >> - то можно конечно "прибить гвоздями" настройки и исходя из этого писать
  >>  работающую с драйвером программу.
  IA>  Hихрена не понял -- что ты собрался прибивать гвоздями?
 
 Количество каналов например - и соответственно - размер пакета выдаваемых
 данных. Hу-ка представь себе буфер в драйвере, под переменный размер пакета
 данных, задаваемый через IOCTL? Кода для обработки получится столько, что быстро
 работать оно точно не будет. Данные-то в буфер должны писаться по прерыванию от 
 платы. А неумеренно длинный обработчик прерывания - верный путь огрести повисы в
 непредсказуемые моменты времени(от минут до часов). Проверено на собственной
 шкуре еще лет десять назад.
 Если сделать пакет всегда максимально возможным и просто игнорировать его пустой
 хвост в userlevel-программе если не нужен - то это увеличивает загрузку машины
 на бессмысленную перекачку нулей и лишает возможности производить измерения
 быстрых процессов, используя меньшее количество каналов. У АЦП вообще-то время
 преобразования 1.7мкс, так что если мерить одним каналом(без переключения
 входного коммутатора) - можно сигнал килогерц в 200 оцифровать. Сейчас оно вроде
 бы не надо, но вполне может потребоваться в будущем. Так что я сразу пытаюсь не 
 писать длинного кода там где он должен выполняться за ограниченное время, а
 также не использовать циклического опроса(например бита готовности - если не
 готов - делаем что-нибудь другое, а не ждем, потом снова проверяем).
 
 Zahar(@spbdept.rbc.ru) Остров Большой Березовый: http://birch-island.spb.ru
 
 --- Msged/LNX 6.1.1
  * Origin: N:60.17'54" E:28.39'40" (2:5030/382.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: CorelDraw   Alex Korchmar   20 Dec 2004 16:17:59 
 Re: CorelDraw   Ilya Anfimov   20 Dec 2004 17:19:29 
 драйвер   Zahar Kiselev   20 Dec 2004 17:44:22 
 Re: драйвер   Victor Wagner   20 Dec 2004 20:02:22 
 Re: драйвер   Ilya Anfimov   20 Dec 2004 21:58:28 
 Re: драйвер   Alex Korchmar   21 Dec 2004 01:09:37 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 00:56:30 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 03:16:00 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 05:25:22 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:32:21 
 Re: драйвер   Zahar Kiselev   22 Dec 2004 00:04:04 
 Re: драйвер   Zahar Kiselev   20 Dec 2004 22:07:18 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 00:53:17 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 02:49:02 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:09:04 
 Re: драйвер   Victor Wagner   21 Dec 2004 01:13:55 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 03:02:16 
 Re: драйвер   Victor Wagner   21 Dec 2004 10:01:58 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:17:59 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 22:31:06 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:15:53 
 Re: драйвер (Offtopic)   Serg Oskin   20 Dec 2004 20:49:09 
 Re:   Zahar Kiselev   20 Dec 2004 22:41:18 
 Re:   Serg Oskin   21 Dec 2004 13:04:20 
 Re:   Zahar Kiselev   22 Dec 2004 00:09:16 
 Re:   Serg Oskin   22 Dec 2004 16:02:11 
 Re: драйвер   Ilya Anfimov   20 Dec 2004 21:20:14 
 Re: драйвер   Zahar Kiselev   20 Dec 2004 22:47:52 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 01:29:02 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 03:34:48 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:26:06 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 23:53:24 
 Re: драйвер   Igor Tihonov   20 Dec 2004 22:42:44 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 00:57:51 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 01:11:16 
 Re: драйвер   Igor Tihonov   21 Dec 2004 19:58:59 
 Re: драйвер   Igor Tihonov   21 Dec 2004 20:05:35 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 22:06:43 
 Re: драйвер   Zahar Kiselev   22 Dec 2004 03:46:22 
 Re: драйвер   slava kozyrev   21 Dec 2004 11:34:50 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 22:19:36 
 Re: CorelDraw   Nick Gazaloff   21 Dec 2004 03:00:14 
 Re: CorelDraw   Peter V. Chernikoff   31 Dec 2004 23:29:54 
Архивное /ru.linux/328841c73626.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional