Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А ну да. CTI - прерывание решит проблему с задержкой символа в очереди 24.09.03 19:19 Число просмотров: 1402
Автор: amirul <Serge> Статус: The Elderman
|
> Это не совсем так, при включеном FIFO и паузе в передаче, > прерывание будет сгенерированно даже при незаполненном > FIFO. Этот "таймаут" равет удвоенному времени передачи > одного символа (если я не ошибаюсь). Учетверенному.
> На многих новых чипсетах FIFO отключается только "слегка". > Варианты самые разные. Например на передачу "в очередь" > можно поставить больше одного байта, даже если FIFO > выключено. Не знаю точно, но вроде как предусмотрено отдельное включение для очередей на прием и передачу. То есть обычный 16550А можно поставить в такой режим. Все UART-ы совместимые с 16550А должны вести себя так же.
> При приеме тоже возможны "хитрости", например если вовремя > не вычитать данные то будет overrun в статусе линии, но при > этом из регистра данных приемника можно считывать принятые > и не "затерные" overrun-ом байты. И в некоторых случаях (на > некоторых чипах) приемник "не видит" одного принятого байта > до таймаута, либо до стартовых битов следующей посылки. В общем то поведение FIFO при возникновении ошибки довольно хорошо задокументировано, в вышеупомянутом Гуке это все даже на русском.
> С прерываниями по статусу модема все еще хуже. Почти все > чипы допускают "потерю" прерывания по статусу модема, если > одновременно с этим возникает еще какое-либо событие > (прерывание). Не уверен, вполне возможно оно не теряется, а просто перекрывается более высокприоритетным прерыванием. После его обработки можно опять получить статус. Не могу сказать что работал прямо уж со всеми чипами, но про пропадающие прерывания не слышал.
|
|
|