Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] com-порт/dos/обработка прерывания 30.04.03 15:33 Число просмотров: 1498
Автор: amirul <Serge> Статус: The Elderman
|
> Мало где документированная особенность. На сколько я > понимаю - это не просто один из сигналов, которым должно > быть можно пользоваться как хочешь, а, на самом деле > нельзя, он управляет разрешением прерываний.
Да действительно в UART-е два метода запрещения прерываний: по маске в IER и сигналом OUT2 (иногда называют IE - interrupt enable)
> > У меня есть еще парочка вопросов: > > - Есть какая-нибудь литература (сайт) по работе с > > COM-портом
Вот вот собираемся запустить allserialports.com только все никак сайт нам не доделают. Сначала будет сыровато, но направленность именно такая будет.
> Я пользовался только HELPами, MANами и другими файловыми > доками.
Я еще скачал пару спецификаций с сайтов разработчиков UART-ов. Там все очень хорошо написано. У многих разработчиков UART-ов есть расширения от стандартного 16550(A), но точно указывается что это только для данного железа и несовместимо со стандартным. Могу отмылить только скажи куда.
> У последовательных портов типа 16550А, именно А, есть > очередь. То есть если байт не успели вытащить из регистра > приемника, а по линии уже передан следующий, то при приеме > нового, ни старый не забьется новым в регистре приемнике, > ни новый не пропадет (встанет в очередь, попадет в регистр > приемник и вызовет прерывание, как только будет завершена > обработка предыдущего). Очередь до 16 событий по передаче и > приему. Используется для повышения скорости и надежности > связи. Информации о том как с очередью работать у меня нет.
Настроить FCR а потом прерывание придет только после того как FIFO заполнится до уровня выставленного в FCR: 1 - отключен, 4, 8 и 14 байт кажется. Ну и как обычно читать RBR до тех пор пока не сбросится флаг DR (Data Ready) в LSR. Названия регистров стандартные (найди любую доку - и возьми их смещения).
> > - Если под W2k писать драйвер - то с точки зрения > > программирования аппаратной части разница есть > > какая-нибудь. Под 2к лучше не писать дривер с нуля, а взять DDK-шный сэмпл. Там очень хорошо все закомментировано и архитектура позволяет легко вносить изменения. Кроме того, реальный код, работающий с железом (особенно с хорошими комментариями) - лучшая дока по этому железу.
> > - Если тебе доводилось видеть комп с 10 COM портами (4 > > COM-порта на одном векторе прерывания), то проблем > никаких > > у тебя с ними не было ?
И кстати в сэмпле момент с мультипортовыми платами и расшаренными прерываниями тоже хорошо просматривается.
|
|
|