
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
Страницы: (51) « Первая ... 16 17 [18] 19 20 ... 50 51 ( Перейти к последнему сообщению ) |
Сообщ.
#256
,
|
|
|
Большое спасибо, Gerret.
![]() Direction = IN (чтение) RequestFlag = 0A1h => (USB_TARGET_INTERF or USB_TYPE_SPC_CLASS or USB_DIR_IN) RequestCod = 0EEh RequestParam = 00h Index = 0 Данные - передается указатель на буфер размером 16 байт конечная точка - нулевая потом по смещению +9 из него берется какое-то непонятное число: 0EB14h РS похоже на запрос какого-то дескриптора |
Сообщ.
#257
,
|
|
|
А откуда ты берешь все эти данные???
|
Сообщ.
#258
,
|
|
|
Драйвер мото харя (usbaspi) посылает такие запросы
|
Сообщ.
#259
,
|
|
|
Хм... ты его дизасмишь что ли?
По поводу ограниченноси Mass Storage Reset, это может быть заточка драйвера под конкретные устройства, т.к. как показала практика далеко не все флешки нормально реагируют на этот запрос. Про GetMaxLun такого сказать нельзя, но может когда-то были всякие ограничения... Что такое за буфер после ресета и что такое EEh - фиг знает... |
Сообщ.
#260
,
|
|
|
Цитата Gerret @ Хм... ты его дизасмишь что ли? По поводу ограниченноси Mass Storage Reset, это может быть заточка драйвера под конкретные устройства, т.к. как показала практика далеко не все флешки нормально реагируют на этот запрос. Про GetMaxLun такого сказать нельзя, но может когда-то были всякие ограничения... Что такое за буфер после ресета и что такое EEh - фиг знает... Цитата Хм... ты его дизасмишь что ли? Да пытаюсь Добавлено Цитата заточка драйвера под конкретные устройства, т.к. как показала практика далеко не все флешки нормально реагируют на этот запрос Именно так и есть |
Сообщ.
#261
,
|
|
|
Цитата uchtinka @ Да пытаюсь Неблагодарное это занятие ![]() Проще взять спецификацию на хост контроллер и на нужное устройство (Mass Storage Class) и разобравшись в спецификации самому написать. Поверь - разобраться в документации будет куда легче чем дизассемблировать готовый драйвер и пытаться понять а что же оно там делает... |
Сообщ.
#262
,
|
|
|
Кому-как.. Мне например проще дизассемблировать. Есть опыт. А мне в спецификации разбираться сложнее.
Добавлено Есть конечно сложности. Драйвер на 90% написан на С. Это затрудняет дизассемблирование. Если на assemblere то вообще нет проблем Добавлено Дизассемблирование сродни решению головоломки. Сам процесс может доставлять удовольствие. К тому же пока разбираешься в коде спецификацию приходится изучить досконально |
Сообщ.
#263
,
|
|
|
Цитата Direction = IN (чтение) RequestFlag = 0A1h => (USB_TARGET_INTERF or USB_TYPE_SPC_CLASS or USB_DIR_IN) RequestCod = 0EEh RequestParam = 00h Index = 0 Данные - передается указатель на буфер размером 16 байт конечная точка - нулевая потом по смещению +9 из него берется какое-то непонятное число: 0EB14h РS похоже на запрос какого-то дескриптора 0A1h (10100001b) - специфический запрос к интерфейсу для данного класса Надо смотреть спецификацию на интерфейс либо спецификацию изготовителя |
Сообщ.
#264
,
|
|
|
Gerret, а ты своим драйвером не поделишься? на благо человечества)
|
Сообщ.
#265
,
|
|
|
Всем добрый день!
Есть такая проблема. Программирую UHCI под ДОС. Все работает, если в BIOS отключена Legacy Support. Если включить, то reset контроллеров UHCI проходит, но порты не реагируют на подключение устройств. Не хочется запрещать в BIOSe Legacy Support, т.к. это делает невозможным загрузку с внешних устройтств. Как бы отключить Legacy динамически? Может, при сбросе контроллера что-то надо добавить? Пробовал в конфигурационном прострастве PCI нулить регистр Legacy (смещение 0xC0) - не помогло. Заранее спасибо! |
Сообщ.
#266
,
|
|
|
Скорее всего ещё надо Legacy в EHCI отключить.
|
Сообщ.
#267
,
|
|
|
Скорее всего надо отключить EHCI контроллер! Он перехватывает твои флешки т.к. они USB2.0 все.
cppasm синхронность и синфазнось ![]() |
Сообщ.
#268
,
|
|
|
Цитата Gerret @ Скорее всего надо отключить EHCI контроллер! Он перехватывает твои флешки т.к. они USB2.0 все. Точняк! Только это зависит от реализации BIOS. У меня на некоторых компах драйвер сам определяет, что устройство USB2.0, а на некоторых как по спецификации EHCI отдаёт UHCI и не настраивает. |
Сообщ.
#269
,
|
|
|
Цитата cppasm @ Скорее всего ещё надо Legacy в EHCI отключить. Пробовал в EHCI в регистре USBLEGSUP (EECP+0x00) снять бит 16 (HC BIOS Owned Semaphore) и выставить бит 24 (HC OS Owned Semaphore), либо вообще нулить весь регистр. Также нулил регистр USBLEGCTLSTS(EECP+0x04).Не помогает: UHCI не реагирует на поключение портов. Цитата Gerret @ Скорее всего надо отключить EHCI контроллер! Он перехватывает твои флешки т.к. они USB2.0 все. Совсем отключать EHCI не интересно. Во первых, я работаю не только с Flash и у меня полно устройств 1.1. Во вторых, не любой BIOS Setup это может сделать. Windows же как-то разруливает эту ситуацию ![]() Цитата lsvmo @ Пардон, не понял, так BIOS или драйвер? Точняк! Только это зависит от реализации BIOS. У меня на некоторых компах драйвер сам определяет, что устройство USB2.0, а на некоторых как по спецификации EHCI отдаёт UHCI и не настраивает. |
Сообщ.
#270
,
|
|
|
Alex, посмотри 13й бит PORTSC (EHCI контроллера) - port owner. Если я правильно понял, то запись 1 в него передает управление компаньону.
|