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

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


Местный
***

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



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


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение May 16 2008, 12:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(InsolentS @ May 16 2008, 17:58) *
Можно ли как то обмануть USB и сделать чтобы все запросы идущие, например, к 5му ендпоинту приходили на физический 1ый ендпоинт? help.gif
Почему нет? Главное знать структуру драйвера со стороны хоста и иметь представление о работе всей системы (ПО на хосте <--> драйвер на хосте <--> драйвер на МК <--> ПО МК)


--------------------
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 16 2008, 12:28
Сообщение #3


Местный
***

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



Цитата(prottoss @ May 16 2008, 18:22) *
Почему нет? Главное знать структуру драйвера со стороны хоста и иметь представление о работе всей системы (ПО на хосте <--> драйвер на хосте <--> драйвер на МК <--> ПО МК)

Как работает ПО и драйвер на компе(хосте) я не могу знать, они от стороннего производителя. Если только дизассемблирование, но это крайний случай.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
prottoss
сообщение May 16 2008, 13:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(InsolentS @ May 16 2008, 20:28) *
Как работает ПО и драйвер на компе(хосте) я не могу знать, они от стороннего производителя. Если только дизассемблирование, но это крайний случай.
Извиняюсь, уработался. smile.gif Я в первом своем посте вам сказал ерунду - нельзя обмануть девайс. И если у вас нет точек №4,5,6 то и пакеты к ним Вы не получите. Потому как функция USB аппаратная и она просто не пропустит токен для не существующих точек


--------------------
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 16 2008, 14:30
Сообщение #5


Местный
***

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



Спасибо. Печально это sad.gif


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
=F8=
сообщение May 17 2008, 09:12
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(InsolentS @ May 16 2008, 17:30) *
Спасибо. Печально это sad.gif


Не все так печально вообщето драйвер может быть написан таким образом, и скорее всего так оно и есть, что не привязан к конкретным номерам эндпоинтов. По идее нужно только заменить номер эндпоинта в дескрипторе эндпоинта и все должно работать. Главное чтоб эндпоиты были одного типа т.е. ендпоинт interrupt нельзя заменить на bulk итд ну и out естественно нельзя менять на in.

Сообщение отредактировал =F8= - May 17 2008, 09:14
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 17 2008, 11:39
Сообщение #7


Местный
***

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



Цитата(=F8= @ May 17 2008, 15:12) *
Не все так печально вообщето драйвер может быть написан таким образом, и скорее всего так оно и есть, что не привязан к конкретным номерам эндпоинтов. По идее нужно только заменить номер эндпоинта в дескрипторе эндпоинта и все должно работать. Главное чтоб эндпоиты были одного типа т.е. ендпоинт interrupt нельзя заменить на bulk итд ну и out естественно нельзя менять на in.

При неправильных номерах ендпоинтов получаю в винде BSOD.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
=F8=
сообщение May 17 2008, 12:48
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(InsolentS @ May 17 2008, 14:39) *
При неправильных номерах ендпоинтов получаю в винде BSOD.

Значит драйвер криво написан, причем очень криво. Для того и нужна вся эта куча дескрипторов чтоб не привязываться к конкретным эндпоинтам итд.
А что за драйвер то? Может лучше стандартны виндовый какой-небудь использовать
PS а типы эндпоинтов точно совпадают?

Сообщение отредактировал =F8= - May 17 2008, 12:58
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 17 2008, 13:46
Сообщение #9


Местный
***

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



Цитата(=F8= @ May 17 2008, 18:48) *
Значит драйвер криво написан, причем очень криво. Для того и нужна вся эта куча дескрипторов чтоб не привязываться к конкретным эндпоинтам итд.
А что за драйвер то? Может лучше стандартны виндовый какой-небудь использовать
PS а типы эндпоинтов точно совпадают?

Устройство очень специфическое и драйвер очень специфический, другого нету. Типы ендпоинтов совпадают, если делаю то же самое с правильными номерами (на at91sam7x) - то всё ок.
Я так понимаю у меня два варианта - либо делать редизайн платы на sam7x что выливается в деньги и время, либо продолжить с софтом, попробовать написать драйвер-фильтр, меняющий ендпоинты, что опять же выливается во время, которое как известно гораздо дороже денег. Видимо редизайн :'(


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post



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

 


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


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