информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] com-порт/dos/обработка прерывания 30.04.03 15:33  Число просмотров: 1577
Автор: 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-порта на одном векторе прерывания), то проблем
> никаких
> > у тебя с ними не было ?

И кстати в сэмпле момент с мультипортовыми платами и расшаренными прерываниями тоже хорошо просматривается.
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach