|
Обмануть USB, выдать 1ый ендпоинт за 5ый, лоханулся, нид хелп! |
|
|
|
May 16 2008, 09:58
|

Местный
  
Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897

|
Здравствуйте мастера АРМа, надеюсь на вашу помощь. История такая: отлаживал проект на AT91SAM7X, а на готовую плату распаял SAM7S, предпологая что они отличаются только количеством ног и наличием MAC. Но неожиданно выяснилось, что USB модуль в SAM7S кастрированный и поддерживает только 3 ендпоинта  ,а по иронии судьбы мне нужено использовать именно 4ый и 5ый, т.к. этого требует драйвер, написанный сторонним производителем. Можно ли как то обмануть USB и сделать чтобы все запросы идущие, например, к 5му ендпоинту приходили на физический 1ый ендпоинт?
--------------------
Курильщик даташитов со стажем
|
|
|
|
|
 |
Ответов
|
May 16 2008, 12:28
|

Местный
  
Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897

|
Цитата(prottoss @ May 16 2008, 18:22)  Почему нет? Главное знать структуру драйвера со стороны хоста и иметь представление о работе всей системы (ПО на хосте <--> драйвер на хосте <--> драйвер на МК <--> ПО МК) Как работает ПО и драйвер на компе(хосте) я не могу знать, они от стороннего производителя. Если только дизассемблирование, но это крайний случай.
--------------------
Курильщик даташитов со стажем
|
|
|
|
|
May 17 2008, 11:39
|

Местный
  
Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897

|
Цитата(=F8= @ May 17 2008, 15:12)  Не все так печально вообщето драйвер может быть написан таким образом, и скорее всего так оно и есть, что не привязан к конкретным номерам эндпоинтов. По идее нужно только заменить номер эндпоинта в дескрипторе эндпоинта и все должно работать. Главное чтоб эндпоиты были одного типа т.е. ендпоинт interrupt нельзя заменить на bulk итд ну и out естественно нельзя менять на in. При неправильных номерах ендпоинтов получаю в винде BSOD.
--------------------
Курильщик даташитов со стажем
|
|
|
|
|
May 17 2008, 12:48
|
Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954

|
Цитата(InsolentS @ May 17 2008, 14:39)  При неправильных номерах ендпоинтов получаю в винде BSOD. Значит драйвер криво написан, причем очень криво. Для того и нужна вся эта куча дескрипторов чтоб не привязываться к конкретным эндпоинтам итд. А что за драйвер то? Может лучше стандартны виндовый какой-небудь использовать PS а типы эндпоинтов точно совпадают?
Сообщение отредактировал =F8= - May 17 2008, 12:58
|
|
|
|
|
May 17 2008, 13:46
|

Местный
  
Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897

|
Цитата(=F8= @ May 17 2008, 18:48)  Значит драйвер криво написан, причем очень криво. Для того и нужна вся эта куча дескрипторов чтоб не привязываться к конкретным эндпоинтам итд. А что за драйвер то? Может лучше стандартны виндовый какой-небудь использовать PS а типы эндпоинтов точно совпадают? Устройство очень специфическое и драйвер очень специфический, другого нету. Типы ендпоинтов совпадают, если делаю то же самое с правильными номерами (на at91sam7x) - то всё ок. Я так понимаю у меня два варианта - либо делать редизайн платы на sam7x что выливается в деньги и время, либо продолжить с софтом, попробовать написать драйвер-фильтр, меняющий ендпоинты, что опять же выливается во время, которое как известно гораздо дороже денег. Видимо редизайн :'(
--------------------
Курильщик даташитов со стажем
|
|
|
|
Сообщений в этой теме
InsolentS Обмануть USB, выдать 1ый ендпоинт за 5ый May 16 2008, 09:58       prottoss Цитата(=F8= @ May 17 2008, 20:48) Значит ... May 17 2008, 13:13        =F8= Цитата(prottoss @ May 17 2008, 16:13) Ду... May 17 2008, 13:48         prottoss Цитата(=F8= @ May 17 2008, 21:48) PS Вы н... May 17 2008, 14:12          =F8= Цитата(prottoss @ May 17 2008, 17:12) Я в... May 17 2008, 15:03           Axel Решусь предположить, что, если код приложения, кот... May 18 2008, 11:43            InsolentS Цитата(Axel @ May 18 2008, 17:43) Решусь ... May 19 2008, 07:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|