|
|
  |
Переход WinXPSP2->SP3, как исправить проблему с usbser.sys? |
|
|
|
Aug 21 2009, 08:08
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Здравствуйте
Посоветуйте, пожалуйста, как можно исправить такую ситуацию. В своё время, разрабатывалось устройство на базе AT91SAM7X, которое, помимо всего прочего, управлялось с компьютера через USB с использованием виртуального COM-порта на базе драйвера usbser.sys. В качестве основы при этом был использован пример из FreeRTOS. Устройство нормально заработало, в связи с выходом SP3 появились проблемы - неработоспособность даной конфигурации.
Более-менее просмотрев интернет в поиске решения проблемы минимальными средствами, увидел предложения отказываться от использования usbser.sys или заменять его файлом из дистрибутива WinXPSP2. С первым вариантом не очень хочется связываться, так как времени для написания собственного драйвера (а, в основом, для изучения как это делать) особенно нету. В другом варианте недостаток - виндовс, по словам пользователей устройства, иногда не даёт заменить драйвер возвращая старый на место. Да и непонятно, как отобъётся замена файла более старым на работоспособность других частей виндовс.
Я попробовал переименовать старый usbser.sys, подправить inf всюду где встречается его название и скормить его через update drivers. На моей системе (WinXPSP2) - этот вариант прошёл без проблем, но на некоторых системах (и SP2, и SP3) Windows не хочет производить замену выдавая при установке "нового" переименованного драйвера - "The name is already in use as either a service name or a service display name".
Есть ли какие-то другие решения проблемы?
Спасибо
Сообщение отредактировал OlegHmt - Aug 21 2009, 08:08
|
|
|
|
|
Dec 25 2009, 06:38
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 27-11-08
Пользователь №: 41 999

|
Как самый простой вариант - можно переделать Ваше устройство на USB HID. Тогда вообще никакие драйвера не нужны, просто пишете ПО, которое с Вашим HID работает (по заданным параметрам VID и PID). Есть хорошие рабочие примеры для IAR от Atmel. ПО хоста можно написать как на вызовах функций из HID.dll (библиотечка от Микрософт, примеры в Интернете есть), так и с помощью вызова функций из libusb (свободная библиотека, примеры тоже есть). В случае libusb код легко будет работать как на Windows, так и на *NIX. [ См. также] 1. AT91SAM7X256 - пишем USB HID и ПО хоста для него 2. IAR EW ARM: как сделать USB Mass Storage Device на основе MMC/SD
|
|
|
|
|
Jan 11 2010, 21:17
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422

|
То что наблюдал я - в СП3, драйвер посылает девайсу zero length packet после пакета размером 32 байта (и размере конечной точки 64) - чего делать не должен. В СП2 по идее не посылает даже когда нужно (сам правда не проверял, но читал где-то). Для теста просто попробуйте избежать пакетов кратных 32б и проверить работоспособность )) Ведь может быть связано и не с этим..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|