|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 31, 2004 00:02:25 Начну с малого: какие проблемы програмно-аппаратные возникают при установке n одинаковых устройств (звуковуе карты например)? 1) Ошибка ОС - невозможность создания нескольких одинаковых виртуальных устройств (одинаковые имена) диспетчером устройств Windows 2) Конфликт адресных пространств - использование одинаковых адресов ввода-вывода всеми устройствами вызывает блок со стороны ОС это моё мнение, есть ещё мнения? |
|
|
Дата: Окт 31, 2004 02:28:03 смотря каких устройств pci isa etc. детали в студию |
|
|
Дата: Окт 31, 2004 03:16:31 1) Никто, вроде, не обижается на ОС за то, что она не может создать два файла с одинаковыми именами в одном каталоге. Так что вполне логично, что и диспетчер объектов не может такого делать. 2) Насколько я знаю, ресурсы устройствам распределяются динамически диспетчером PnP в момент загрузки системы. И если какое-то устройство не способно использовать например, адреса ввода-вывода, предлагаемые диспетчером PnP, то это наверное больше проблема производителя устройства. ЗЫ: А зачем иметь несколько одинаковых зуковых карт на одном компе? Если каналов не хватает так купить многоканальную карточку и всё. |
|
|
Дата: Окт 31, 2004 10:39:20 · Поправил: JSK предисловие... ды вот, пытаюсь написать курсовую %) А на мой взгляд в курсовых работах частенько рассматриваются вопросы не имеющие к реальности никакого отношения %) Во всяком случае я так раньше думал, немного разобравшись в тематике выяснил для себя, что эта технология может найти себе применение в облати приема вызовов на пульт диспетчера МЧС, вневедомственной охраны, скорой... итд... вобщем там где нужно обрабатывть несколько телефонных вызовов одновременно. К вопросу о минимизации стоимости таких систем. to Narkomanius это очень очень очень дешевые PCI карточки... хотя, а в чем разница между PCI и ISA в этом плане? я думаю этих двух стандартов достаточно... to Four-F выделяю первую проблемму: программа установки (управления драйвером) не в состоянии создать объекты для каждого устройства из-за того, что она пытается создать объект с тем же именем (уж незнаю пересоздает диспетчер объектов объект или блокирует попытку затереть его) второе, пытаюсь решить проблемма это или нет: разве программа установки драйвера не может присвоить адреса IO в ручную (в винде не с проста можно менять диапазон IO ручками)? Да и сможет ли диспетчер PnP корректно выделить IO адреса под неизвестное устройство? делаю ещё один вывод: все зло исходит от разработчика драйвера, который просто не рассматривает ситуацию "много карт на одном компе" ваабще мне начинает казацца, что дело не в этом, все должно работать, а не работает... почему же тогда? |
|
|
Дата: Окт 31, 2004 12:13:23 наконец-то нашел инфу по диспетчеру PnP... проблемма 2 снимаецца. Наложение и пересечение адресных пространств отсутствует для PnP устройств. |
|
|
Дата: Окт 31, 2004 15:07:59 [ JSK: программа установки (управления драйвером) не в состоянии создать объекты для каждого устройства из-за того, что она пытается создать объект с тем же именем ] Тупая программа установки. Для некоторых типов девайсов предусмотрен специальный флаг FILE_PNP_AUTOGENERATED_DEVICE_NAME, который надо использовать при вызове IoCreateDevice. Например, имена всех девайсов вида Device\000000XX сгенерированы автоматически. Или так можно: Device\HarddiskVolume1 Device\HarddiskVolume2 Device\HarddiskVolume3 Или вообще не использовать именованный объект, а юзать device interface. |
|
|
Дата: Окт 31, 2004 16:55:27 · Поправил: JSK это выход ) т.е. единственная причина неработоспособности двух одинаковых устройств это "тупая программа установки"? вроде бы разобрался со всей цепочкой работы драйвера, от установки до его удаления %) но других причин выделить не могу... задам ещё один вопрос и отстану. для того чтобы запустить эту систему нужно написать корректно работующую программу установки? (сначала думал что прийдется писать промежуточный фильтр для проверки правильного распределения запросов между устройствами, но достаточно все правильно все установить) |
|
|
Дата: Окт 31, 2004 18:45:52 [ JSK: т.е. единственная причина неработоспособности двух одинаковых устройств это "тупая программа установки"? ] Нет. Это единственная причина того, что IoCreateDevice не может создать два девайса с одинаковыми именами. Есть код STATUS_OBJECT_NAME_EXISTS, который IoCreateDevice вернет при коллизии имен. [ JSK: для того чтобы запустить эту систему нужно написать корректно работующую программу установки? ] Вряд ли одного этого будет достаточно. Если устройство PnP, то грубо говоря программа установки делает необходимые записи в реестре о том, какой драйвер управляет устройством когда его запускать и т.п. Если устройство не PnP, то + ещё пытается его запустить. Но создание объектов и распределение ресурсов она не делает. Скорее всего потребуется переделка драйвера. |
|
|
Дата: Окт 31, 2004 20:24:45 FILE_PNP_AUTOGENERATED_DEVICE_NAME - спасибо, этого не знал, больше не буду сильно ругать производителей (они то наверное знают о таком способе задания имен устройств), хотя меня несколько смущает фраза "Для некоторых типов девайсов предусмотрен специальный флаг" - HDD естественно входят в эти "некоторые типы" им по специфике применения положено, а вот как со звуковыми быть (это не вопрос, все равно если этот флаг не используестя или не может быть использован, то проблемму прейдется решать). Уффф, если правильно создать виртуальные объекты ассоциированные с этими устройствами (что успешно сделает диспетчер PnP (для PnP устройств), он же и распределит свободные ресурсы между ними) и сопоставить их драйверу(=библиотеке) (содержащему набор процедур и функций для корректной обработки запросов этому устройству), то система IO будет будет верно доставлять IRP устройству и обратно. (если я все верно написал то с устройствами PnP проблем не должно быть) что касается не PnP устройств: 1) написать программу установки (которая добавит драйвер в базу данных ОС и пометит к запуску в списке диспетчера управления службами сервис проецирующий образ файла драйвера на системное адресное пространство и выполняющий DriverEntry) - с этим проблем нет 2) добавить к коду драйвера корректную процедуру инициализации : создание объектов и распределение ресурсов тк. исходника драйвера производителя найти невозможно следует написать промежуточный драйвер для запуска драйвера необходимого устройства (кажецца полный бред я тут написал) возможно ли это? и если нет то в каком направлении работать? и если можно, пару комментриев по поводу выше сказанного (в смысле наличия фактических ошибок) Я уже начал сомневацца в том, что несколько одинаковах PnP карт не работают вместе) |
|
|
Дата: Окт 31, 2004 22:20:31 а у меня нормально вставали два внешних модема одинаковых... один был просто "название модема", второй - "азвание модема #2" и все работало... |
|
|
Дата: Окт 31, 2004 22:40:18 to Stariy внешний модем, если я правильно все понимаю, не использует для свей работы ресурсов ПК он не имеет адресов IO, прерываний и вделеных каналов. Адресами IO для модема являются адреса IO com (с USB чуть посложнее) порта на котором он висит, прерывание от модема проц видит как от com порта, внешний модем же в свою очередь понятия не имеет о том что скрывается за набором контактов на которых появляются 0 и 1) поэтому ситуация 2 внешних модема не вызывает ошибки. Windows ассоциирует каждиму порту драйвер модема который на нем висит только для того чтобы формат данных совподал с модемными) вообще добавлю, что если модемы PnP то как сказано выше ошибки и не должно возникать) если нет см выше) (Все что почерпал из Интернета курса "ОС" и "Архитектура ПК" :) не факт что правильно понял) |
|
|
Дата: Окт 31, 2004 22:41:58 Добавлю, практически доказано что несколько одинаковых PCI звуковых карт одновременно не могут корректно функционировать на одном ПК, только не знаю PnP или не PnP они были |
|
|
Дата: Ноя 1, 2004 01:20:44 JSK практически доказано что несколько одинаковых PCI звуковых карт одновременно не могут корректно функционировать на одном ПК 1. Несколько лет назад у меня была диджейская муз. программа. Диджеям по долгу работы необходимо два независимых звуковых выхода. В программе был выбор: при наличии одной зв. карты использовать правый канал как моно выход1, а левый - как моно выход2, либо же при наличии 2-х зв. карт использовать одну как стерео выход1, а другую - как стерео выход2. Так вот, если программа рассчитана на использование двух зв. карт одновременно, значит это возможно. 2. Я думаю, что совмещение нескольких одинаковых устройств - проблема драйвера. Подбери приличное устройство и пиши свой драйвер. Изучи kx-project. 3. Персональные компьютеры изначально ограничены в возможностях подключения устройств. В наиболее распространённые материнки более 4-5 зв. карт не воткнёшь. Поэтому можно строить систему не на РС, а, например, на DSP, объединяющих в себе вычислитель и АЦП-ЦАП. Выйдет намного дешевле и надёжнее. Копай в сторону Analog Devices ADSP-21065L (SHARC) и Music-DSP. http://www.analog.com/ http://shoko.calarts.edu/musicdsp |
|
|
Дата: Ноя 1, 2004 14:05:34 JSK 2) Насколько я знаю, ресурсы устройствам распределяются динамически диспетчером PnP в момент загрузки системы. И если какое-то устройство не способно использовать например, адреса ввода-вывода, предлагаемые диспетчером PnP, то это наверное больше проблема производителя устройства. ... либо производителя acpi bios... |
|
|
Дата: Ноя 2, 2004 02:14:05 JSK насчет звуковух не знаю, а у меня на работе в компе стоят 2 одинаковые PCI карточки (генераторы сигналов произвольной формы), которые юзают каждая свои I/O, память,IRQ. Работают без проблемов и так же как у Stariy обзываются "имя устройства" и "имя устройства #2" |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.089 |