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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Rustam Gadeyev                       2:5008/14      16 Mar 2003  09:36:58
 To : Alex Korchmar
 Subject : Мультяха
 -------------------------------------------------------------------------------- 
 
 
 14 Мар 03 19:10, Alex Korchmar wrote Oleg Goodyckov:
 
  OG>> Следовательно, если два порта будут сидеть на одном прерывании, то
  OG>> для программы нет никакой разницы, с какой платы это прерывание
  OG>> поступило. К тому я и клонил. Драйверу безразлично, где
  OG>> расположены порты - на материнке или на мультяхе, или и там, и там
  OG>> поровну. Он их всеравно обработает корректно.
  AK> к сожалению, микросхема NS16550 и ее аналоги и софтовые эмуляторы
  AK> во внутренних модемах устроены так, что драйверу чрезвычайно сложно,
  AK> если не невозможно вообще, корректно обрабатывать такую ситуацию,
  AK> когда неизвестно, какая именно сгенерила прерывание. Как правило,
  AK> весьма несложно вовсе повесить порт так, что лечится это уже только
  AK> ресетом.
  AK>
  AK> Результат, наблюдаемый тобой - типичен для данной ситуации.
 
  Во первых мультипортовки обычно так и работают: массив портов на одном
 прерывании и драйвер вычитывает IIR у всех портов и решает обслуживать данный
 порт или нет. Для мультях даже есть совет ставить диод для обеспечения
 проводного ИЛИ изображая открытый эмиттер и диод для подтяжки к нулю.
  Во вторых почему-то у меня под DOS прекрасно работает самописный драйвер,
 которому нет разницы на каких прерываниях сидят порты или даже вовсе не имеют
 прерывания. Все работает именно на использовании IIR и FIFO. FIFO позволяет
 увеличить интервал между опросами IIR для портов без прерываний. То есть если
 вызывать функцию чтения порта с частотой 1кГц, то скорость чтения данных из
 порта 1000*16 обеспечит baudrate=160кBd
  В третьих порты не вешаются просто так. У меня только иногда так получалось на 
 старинном notebook, а на всех остальных порты функционируют в соответствии со
 стандартом. Скорее всего у тебя драйвер обслужил не все порты, которые
 использовали это прерывание и подал PIC-у сигнал EOI. После этого прерывание уже
 не вызовется. Если у тебя есть конкретный способ вешать порт так, чтобы он мог
 вылечиться только через RESET, дай мне работающий примерчик.
  Если трудности и существуют после решения аппаратной проблемы с IRQ, то только 
 в конкретной архитектуре драйверов.
 
 Good Bye.
 
 --- ---
  * Origin: Ulan-Ude. Buryatia.0(2:5008/14)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Мультяха   Oleg Goodyckov   13 Mar 2003 20:34:24 
 Re: Мультяха   Mihail Badin   13 Mar 2003 20:43:12 
 Re: Мультяха   Oleg Goodyckov   14 Mar 2003 13:40:25 
 Re: Мультяха   Mihail Badin   14 Mar 2003 14:45:59 
 Re: Мультяха   Sergey Shibeko   14 Mar 2003 17:55:11 
 Re: Мультяха   Oleg Goodyckov   14 Mar 2003 21:31:25 
 Re: Мультяха   Valentin Nechayev   14 Mar 2003 22:41:44 
 Re: Мультяха   Oleg Goodyckov   17 Mar 2003 13:01:15 
 Re: Мультяха   Sergey Shibeko   14 Mar 2003 23:54:00 
 Re: Мультяха   Oleg Goodyckov   17 Mar 2003 13:01:16 
 Re: Мультяха   Mihail Badin   14 Mar 2003 22:20:37 
 Re: Мультяха   Mihail Badin   15 Mar 2003 01:29:10 
 Мультяха   Nick Pletnev   16 Mar 2003 18:18:10 
 Re: Мультяха   Sergey Shibeko   14 Mar 2003 09:56:39 
 Re: Мультяха   Alex Korchmar   14 Mar 2003 20:10:15 
 Re: Мультяха   Oleg Goodyckov   14 Mar 2003 21:33:39 
 Re: Мультяха   Alex Korchmar   14 Mar 2003 22:18:03 
 Re: Мультяха   Oleg Goodyckov   17 Mar 2003 13:10:26 
 Re: Мультяха   Mihail Badin   14 Mar 2003 22:23:54 
 Re: Мультяха   Alex Korchmar   15 Mar 2003 00:48:10 
 Re: Мультяха   Mihail Badin   15 Mar 2003 01:07:06 
 Re: Мультяха   Alex Korchmar   15 Mar 2003 01:33:55 
 Re: Мультяха   Mihail Badin   15 Mar 2003 01:44:30 
 Мультяха   Rustam Gadeyev   16 Mar 2003 09:36:58 
Архивное /ru.linux/179983e7444c8.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional