-
21. Data: 2012-06-13 00:22:25
Temat: Re: mass storage
Od: shg <s...@g...com>
On Jun 12, 8:15 pm, "identyfikator: 20040501"
<N...@g...pl> wrote:
> coś mnie chyba Szanowny Kolega oszukuje, właśnie zobaczyłem w debugerze, że
> pierwszy deskryptor w enumeracji przesyłany jest w całości... debuger
> pokazuje pełne $12 bajtów... a to ciekawostka?
Debugger może analizować pakiety z poziomu systemu, a za fragmentację
może być odpowiedzialny kontroler hosta na płycie.
Trzeba by "sprzętowym" analizatorem oglądać. Wszystkie programowe
które sprawdzałem mają jakieś mniej lub bardziej poważne wady.
Np. nie "sklejają" pakietów, co uniemożliwia ich analizę (USBlyzer),
albo obcinają dane (usbfs(?) na Linuksie) itp.
-
22. Data: 2012-06-13 09:09:09
Temat: Re: mass storage
Od: "identyfikator: 20040501" <N...@g...pl>
chyba mnie Panowie nie rozumiecie, napiszę jeszcze raz o co mi chodzi...
chodzi o pobranie pierwszy raz deskryptora urządzenia podczas enumeracji,
moja przykładowa myszka zwraca w max_packet_size = 8, ale co się dzieje
podczas pierwszego odczytu deskryptora, gdy size jest nieznany, konkretnie
jakie pakiety są wysyłane przez urządzenie?
-
23. Data: 2012-06-13 09:30:29
Temat: Re: mass storage
Od: "identyfikator: 20040501" <N...@g...pl>
Mister i shg możecie odezwać się do mnie na maila? chciałbym Wam zadać
pytanie na temat związany z dokumentacją do USB... tylko prywatne.
-
24. Data: 2012-06-15 13:14:22
Temat: Re: mass storage
Od: "MiSter" <_...@w...pl>
> chyba mnie Panowie nie rozumiecie, napiszę jeszcze raz o co mi chodzi...
> chodzi o pobranie pierwszy raz deskryptora urządzenia podczas enumeracji,
> moja przykładowa myszka zwraca w max_packet_size = 8, ale co się dzieje
> podczas pierwszego odczytu deskryptora, gdy size jest nieznany, konkretnie
> jakie pakiety są wysyłane przez urządzenie?
Dla myszki sekwencja wygląda Np. tak:
GetDescriptor(device) - tu następuje pobranie deskryptora z adresu 0 (device
nie jest skonfigurowane)
Host wysyła SETUP
IN Device odpowiada 8 bajtami
IN Device odpowiada 8 bajtami
IN Device odpowiada 2 bajtami
OUT jako info o zakończeniu SETUP
Teraz Host wie jaki ma max packet size więc robi reset Device.
Po resecie Który trwa kilka ms host wysyła:
SetAddres(1) - Teraz następuje zaadresowanie Device wolnym adresem np 1.
Od tej chwili wszystkie requesty dotyczą naszego device który tylko
odpowiada na ten adres nadany właśnie przez Hosta
GetDescriptor(Device)
Host wysyła SETUP
IN Device odpowiada 8 bajtami
IN Device odpowiada 8 bajtami
IN Device odpowiada 2 bajtami
OUT jako info o zakonczeniu SETUP
GetDescriptor(Configuration) - jest pobierana mała konfiguracja 9B
GetDescriptor(Configuration) - jest pobierana duża konfiguracja 34B
Następnie są pobierane stringi, raport, a na koniec jest ustawiana
konfiguracja i od tej chwili urządzenie działa zgodnie z konfiguracją.
Tak to wygląda w trybie LS - oczywiście między pakietami idą KeepAlive ale
to w tym wypadku jest nie istotne.
MiSter
-
25. Data: 2012-06-15 14:22:30
Temat: Re: mass storage
Od: "identyfikator: 20040501" <N...@g...pl>
> Dla myszki sekwencja wygląda Np. tak:
dz. ale dlaczego napisałeś NP.?
> GetDescriptor(device) - tu następuje pobranie deskryptora z adresu 0
> (device nie jest skonfigurowane)
> Host wysyła SETUP
> IN Device odpowiada 8 bajtami
> IN Device odpowiada 8 bajtami
> IN Device odpowiada 2 bajtami
> OUT jako info o zakończeniu SETUP
niby dlaczego tak? a może to jest tak, że piersze zapytanie ZAWSZE odbywa
się w paczkach po 8 bajtów? nie jest to nigdzie opisane, bo bym nie pytał...
> Teraz Host wie jaki ma max packet size więc robi reset Device.
> Po resecie Który trwa kilka ms host wysyła:
> SetAddres(1) - Teraz następuje zaadresowanie Device wolnym adresem np 1.
> Od tej chwili wszystkie requesty dotyczą naszego device który tylko
> odpowiada na ten adres nadany właśnie przez Hosta
> GetDescriptor(Device)
> Host wysyła SETUP
> IN Device odpowiada 8 bajtami
> IN Device odpowiada 8 bajtami
> IN Device odpowiada 2 bajtami
> OUT jako info o zakonczeniu SETUP
> GetDescriptor(Configuration) - jest pobierana mała konfiguracja 9B
> GetDescriptor(Configuration) - jest pobierana duża konfiguracja 34B
no właśnie, to też zagadka, raz wysyła sam config, później wszystkie
deskryptory naraz, a zapytanie ma taki sam format...
> Następnie są pobierane stringi, raport, a na koniec jest ustawiana
> konfiguracja i od tej chwili urządzenie działa zgodnie z konfiguracją.
>
> Tak to wygląda w trybie LS - oczywiście między pakietami idą KeepAlive
> ale to w tym wypadku jest nie istotne.
dzięki, jakbyś mógł to odezwij się do mnie na q...@g...pl żadnego spamu
nie planuję ;o).
-
26. Data: 2012-06-16 08:15:58
Temat: Re: mass storage
Od: "MiSter" <B...@W...PL>
> dz. ale dlaczego napisałeś NP.?
Bo dla innych może się różnić.
> niby dlaczego tak? a może to jest tak, że piersze zapytanie ZAWSZE odbywa
> się w paczkach po 8 bajtów? nie jest to nigdzie opisane, bo bym nie
> pytał...
Już pisałem wcześniej. Spec usb mówi, że EP0 musi mieć max packet size
conajmniej 8B, więc oczywiste jest, że pierwsze zagajenie _musi_ się odbywać
po 8 bajtów.
>> GetDescriptor(Configuration) - jest pobierana mała konfiguracja 9B
>> GetDescriptor(Configuration) - jest pobierana duża konfiguracja 34B
>
>
> no właśnie, to też zagadka, raz wysyła sam config, później wszystkie
> deskryptory naraz, a zapytanie ma taki sam format...
W zapytaniu jest pole które mówi ile chce danych
> dzięki, jakbyś mógł to odezwij się do mnie na q...@g...pl żadnego
> spamu nie planuję ;o).
Adres znajdziesz w sieci.
MiSter
-
27. Data: 2012-06-16 12:10:40
Temat: Re: mass storage
Od: "identyfikator: 20040501" <N...@g...pl>
>> dz. ale dlaczego napisałeś NP.?
>
> Bo dla innych może się różnić.
>
>
>> niby dlaczego tak? a może to jest tak, że piersze zapytanie ZAWSZE odbywa
>> się w paczkach po 8 bajtów? nie jest to nigdzie opisane, bo bym nie
>> pytał...
>
> Już pisałem wcześniej. Spec usb mówi, że EP0 musi mieć max packet size
> conajmniej 8B, więc oczywiste jest, że pierwsze zagajenie _musi_ się
> odbywać po 8 bajtów.
to w końcu jak, jaki może być inny przypadek nie pasujący do tego co
napisane wyżej?
-
28. Data: 2012-06-16 13:28:16
Temat: Re: mass storage
Od: "MiSter" <B...@W...PL>
>>> niby dlaczego tak? a może to jest tak, że piersze zapytanie ZAWSZE
>>> odbywa się w paczkach po 8 bajtów? nie jest to nigdzie opisane, bo bym
>>> nie pytał...
>>
>> Już pisałem wcześniej. Spec usb mówi, że EP0 musi mieć max packet size
>> conajmniej 8B, więc oczywiste jest, że pierwsze zagajenie _musi_ się
>> odbywać po 8 bajtów.
>
> to w końcu jak, jaki może być inny przypadek nie pasujący do tego co
> napisane wyżej?
Jak pisałem wcześniej: to był rozpatrywany przypadek myszki w trybie Low
Speed.
Równie dobrze można spotkać myszki chodzące w Ful Speedzie a nawet w HS bo
ktoś miał taki kaprys.
MiSter
-
29. Data: 2012-06-16 13:51:36
Temat: Re: mass storage
Od: "identyfikator: 20040501" <N...@g...pl>
> Jak pisałem wcześniej: to był rozpatrywany przypadek myszki w trybie Low
> Speed.
> Równie dobrze można spotkać myszki chodzące w Ful Speedzie a nawet w HS bo
> ktoś miał taki kaprys.
weź mnie nakieruj gdzie to wszystko jest opisane?
-
30. Data: 2012-06-16 15:37:08
Temat: Re: mass storage
Od: "MiSter" <B...@W...PL>
Użytkownik "identyfikator: 20040501" <N...@g...pl> napisał w
wiadomości news:jrhs07$f43$1@node1.news.atman.pl...
>> Jak pisałem wcześniej: to był rozpatrywany przypadek myszki w trybie Low
>> Speed.
>> Równie dobrze można spotkać myszki chodzące w Ful Speedzie a nawet w HS
>> bo ktoś miał taki kaprys.
>
> weź mnie nakieruj gdzie to wszystko jest opisane?
Specyfikacja USB http://www.usb.org
MiSter