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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Позвольте с Вами не согласиться. 15.03.04 11:17  Число просмотров: 1947
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.03.04 11:22  Количество правок: 1
<"чистая" ссылка>
У меня мышка и модем сидели на одном прерывании (СОМ1 - мышка, СОМ3 - модем, поскольку СОМ2 тоже как-то использовался или отключать не хотелось). Естественно все не работало. Посадил модем на СОМ4 - заработало.
Меня очень поначалу удивила неработоспособность СОМ1+СОМ3. Причем не работало оно в Виндовсе и в ДОСе (драйвер мышки + терминалка). Вроде как разные терминалки пробовал и разные драйвера мышки. Ну я бы понял, когда каждый из обработчиков терял бы свои прерывания/байты. Там же был такой развал! Под ДОСом я имею в виду. У меня сложилось впечатление, что просто хреново написаны обработчики. Не учтено, что на одном прерывании может висеть несколько устройств (что изначально было запрещено разработчиками ИСА шины). Однако одновременность работы нескольких устройств на одном прерывании имеет место быть. Путаница с СОМ портами решается легко - у них есть регистрик, при помощи которого можно определить в обработчике прерывания, было ли оно от этого порта, которое обрабатывает этот обработчик, или от другого устройства. Просто в обработчике надо посмотреть на этот битик и соответственно либо сделать что нужно и завершить обработку, либо передать управление на тот вектор прерывания, который был до того, как этот новый обработчик сел на это прерывание.
Потом, помнится, попробовал под Линуксом - все работало. А я уж начал бояться, что "железо" кривое, раз уж ни в Виндовсе ни в ДОСе не работает.
> Когда два порта сидят на одном прерывани, система не может
> определить, сколько и от какого устройства пришло
> прерывание, если их активировали два устройства
Для СОМ портов точно можно!
> одновременно. Вот контроллер прерываний можно настроить на
> два метода работы с линиями прерываний — LEVEL и EDGE.
> Первый метод (самый старый) работает по уровню — т.е. если
> он активен, то прерывание пришло. Теперь представим, что в
> этот момент другое устройство, которое "сидит" на этой
> линии IRQ, тоже хочет поднять прерывание. Но обламывается,
> т.е. оно думает, что оно его подняло, но на самом деле оно
> не будет "замечено" системой, поскольку уровень линии IRQ
> уже был активен. А второй тип (EDGE) работает по изменению
> уровня. Т.е. если устройство хочет поднять прерывание, оно
> инвертирует состояние линии, это замечается контроллером
> прерываний на 100%.

Это что же, при срабатывании по фронту, по-Вашему - объединены два логических выхода, причем когда один выставляет логическую единицу (высокий уровень), второй выставляет низкий уровень или наоборот. Причем вророе устройство "побеждает" в борьбе?

> Короче шина ISA использует использует тип прерываний LEVEL,
> и, соответственно, контроллеры com-портов, будучи на этой
> шине, глючат, если пытаться использовать одновременно два
> com-порта на одном прерывании.
<hardware> Поиск 






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


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