реклама на сайте
подробности

 
 
> Почему USB-устройство перезагружает WINDOWS, Ну почему же ж?
Толик
сообщение Jul 2 2007, 08:51
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Почему USB перезагружает WINDOWs ?

Какие вообще есть конфликты между USB-устройствами и Windows'ом?
Хоть бы ссылочку какую-нибудь получить.

Разрабатываемое устройство перезагружается в самом начале, когда устройство программно отключается от питания(шины USB), а затем включается. smile3046.gif [font=Arial]
Если устройство до этого не было подключено (кабель), то при подключении не перезагружает Windows(хотя процедура программного включения-выключения всё равно выполняется).
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
TailWind
сообщение Jul 2 2007, 09:05
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 15-11-04
Пользователь №: 1 135



Это у Вас что-то с драйвером.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 2 2007, 09:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Если USB device что-либо неправильно посылает host'у с Windows может произойти много чего нехорошего типа появления "синего экрана смерти" или система начинает работать в 100 - 1000 раз медленнее. Резет - из той же оперы.
Go to the top of the page
 
+Quote Post
Толик
сообщение Jul 2 2007, 10:21
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Цитата(TailWind @ Jul 2 2007, 13:05) *
Это у Вас что-то с драйвером.

Драйвер Windows'овский

Вы писали: ......Если USB device что-либо неправильно посылает host'у

Но тогда устройство не определилось бы или не включилось, выдало бы в диспетчере устройств код ошибки

Мне бы ссылочки......ссылочки.....вот было бы хорошо-то как а? wassat.gif
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 2 2007, 10:55
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Уважаемый! Какие ты хочешь ссылочки? Я делюсь собственным опытом. Меня две недели как-то трахали, что device не работает. А дело было в ошибках по железу. При этом компьютер зависал намертво по десять раз на дню, причем пару раз с летальным исходом (приходилось все переустанавливать).
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jul 2 2007, 11:58
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Толик @ Jul 2 2007, 14:21) *
Драйвер Windows'овский

Ясное дело, что не Линуксовский. Вы наверно хотели сказать что он не Микросовтовский crying.gif . Кривой драйвер может творить с системой все, что угодно. Единственный рецепт - ищите менее глючный драйвер. Другого выхода нет. Сами Вы его не поправите sad.gif
Go to the top of the page
 
+Quote Post
Толик
сообщение Jul 2 2007, 12:22
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



То что проблема с железом это понятно. Вопрос был в том какая проблема. Поэтому я и написал что драйвер стандартный Windows'a и к нему вопроса быть не может.

А ссылки нужны по самой Windows. В часности почему она позволяет постороннему устройству себя перезагружать и не выдаёт при этом каких-нибудь предупреждений? Да и вообще - почему перезагружается Windows?

Свою проблему я уже решил. Но решение ещё более запутало. Оказывается я ставил слишком большое значение поля wMaxPacketSize в дескрипторе конечной точке. Даже и не знаю что думать. Может компьютер слишком слабый, а может во мне проблема?

То что проблема с железом это понятно. Вопрос был в том какая проблема. Поэтому я и написал что драйвер стандартный Windows'a и к нему вопроса быть не может.

А ссылки нужны по самой Windows. В часности почему она позволяет постороннему устройству себя перезагружать и не выдаёт при этом каких-нибудь предупреждений? Да и вообще - почему перезагружается Windows?

Свою проблему я уже решил. Но решение ещё более запутало. Оказывается я ставил слишком большое значение поля wMaxPacketSize в дескрипторе конечной точке. Даже и не знаю что думать. Может компьютер слишком слабый, а может во мне проблема?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 2 2007, 13:19
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Насчет того, что ты проблему решил - это скорее всего иллюзия. Обмен дескрипторами происходит на этапе usb enumeration, т.е. когда еще твой драйвер не подгружен. Посмотри внимательно, нет ли звона на фронтах сигналов.
Go to the top of the page
 
+Quote Post
SunnyDevil
сообщение Jul 2 2007, 18:22
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 108
Регистрация: 15-05-07
Пользователь №: 27 742



Хочется уточнить характер перезагрузки:
1 вариант. После подключения устройства Windows корректно завершает свою работу и аккуратно перезагружается. В таком случае дело действительно в драйверах или в системе целом. На мой взгляд такое развитие событий неправдоподобно.
2 вариант. Подключайете устройство и компьютер сразу уходит на перезагрузку как после нажатия на Reset. В таком случае скорее всего проблема в элементарной электрической совместимости вашего устройства и в целом всего компьютера. Не несет ли оно на себе потенциал? Напрямую либо через емкость? Установлены ли защитные цепи от выбросов по сигнальным цепям и питающим? Не потребляет ли оно слишком большой ток при включении от USB шины? Попробуйте подключить устройство к другим компьютерам, может материнская плата чувствительная оказалась к недоработкам в вашем устройстве.
3 вариант. Windows выдает кучу ошибок уровня ядра, выходит в синий экран и после дампа перегружается. Проблема с драйвером, ваше устройство скорее всего не при чем. Если часть вашего приложения работает в ражиме ядра - ищите там. Если только во внешнем кольце, то вы не при чем.
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jul 2 2007, 19:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Замечено, что если на этапе енумерации устройство отваливается, то виндюки валятся в перезагрузку без объяснения причин. У меня устройство, успев послать пару дескрипторов уходило в ресет - виндюки падают с некоторой вероятностью (видимо в зависимости от момента).
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jul 2 2007, 21:02
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Толик @ Jul 2 2007, 16:22) *
А ссылки нужны по самой Windows. В часности почему она позволяет постороннему устройству себя перезагружать и не выдаёт при этом каких-нибудь предупреждений? Да и вообще - почему перезагружается Windows?


Вы не совсем правильно интерпретируете проблему. Винда уходит на перезагрузку не потому, что драйвер ее перегружает, а потому, что в систему возникает критический сбой, который несовсестим с дальнейшим функционированием системы (причем такой, что даже до синего экрана не доходит).
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jul 3 2007, 06:15
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Еще есть вариант с серийным номером.
У нас вында перегружалась если поключались два наших HID с одинаковыми серийниками, причем не на всех машинах и системах. (имеется в виду ХР, ХР+SP и т.д.)
ЗЫ. Linux не падал даже если обнаружил два устройства с одинаковыми серийниками. smile.gif
Go to the top of the page
 
+Quote Post
Georgy
сообщение Jul 3 2007, 06:48
Сообщение #13


Уставать стал
****

Группа: Свой
Сообщений: 603
Регистрация: 11-07-05
Из: Севастополь
Пользователь №: 6 692



Почему бы Майкрософт не спросить?


--------------------
Коллектив-Большая Сила!
Go to the top of the page
 
+Quote Post
oran-be
сообщение Jul 3 2007, 07:45
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



Подпись "Мелклсофт сорп." такая же виртуализация, как и вся память в РС smile.gif На самом деле самая объемная часть системы - это хост контроллер, а его драйвер пишется непосредственно с учетом железа материнки. А кем же пишутся дрова распространенные на Асус или какой нить Элттгруп как не производителями - теми же китайцами? Так что я тоже думаю, что причина в драйвере, в котором не предусмотрен вариант какой-то некорректной ситуации и его писатели не предусмотрели обработчик, который корректно выводит систему из нее. Самое простое убедится в этом - попробовать на другой машине с другим железом. А решение - либо поискать другой драйвер, либо методом тыка обойти некорректные безвыходные ситуации.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Jul 3 2007, 08:11
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(oran-be @ Jul 3 2007, 11:45) *
Подпись "Мелклсофт сорп." такая же виртуализация, как и вся память в РС smile.gif На самом деле самая объемная часть системы - это хост контроллер, а его драйвер пишется непосредственно с учетом железа материнки. А кем же пишутся дрова распространенные на Асус или какой нить Элттгруп как не производителями - теми же китайцами? Так что я тоже думаю, что причина в драйвере, в котором не предусмотрен вариант какой-то некорректной ситуации и его писатели не предусмотрели обработчик, который корректно выводит систему из нее. Самое простое убедится в этом - попробовать на другой машине с другим железом. А решение - либо поискать другой драйвер, либо методом тыка обойти некорректные безвыходные ситуации.


У USB аппаратные интерфейса хостов стандартизованы. Всего три варианта, два для USB 1.1, один - для USB 2.0. Драйвера для них писаны Майкрософтом. Драйвера довольно кривые. Возможно, лучше чем у многого китайского железа - но, тем не менее, багов в них исправлена было очень много. Вообще, с драйверами у Майкрософтов длительное время было плохо - достаточно было порыться в примерах из DDK, чтобы это понять. В последнее время ситуация улучшалась.

Что касается перезагрузки системы при неправильной работе USB устройства - про это слышал давно. Многие драйвера не проверяют корректность работы устройства, считая, что железу можно доверять. Вроде бы, система может слететь даже если USB железяка некорректно выдала строковый дескриптор.

Для отладки может быть полезно подключить kernel debugger через RS-232 и даже поставить checked build операционки.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01621 секунд с 7
ELECTRONIX ©2004-2016