Goto page Previous 1, 2, 3 Next
identyfikator: 20040501
Guest
Tue Jun 12, 2012 12:21 pm
Quote:
Najlepiej w ogóle nie karmić, to może zdechnie...
schowaj się do europy
Adam Wysocki
Guest
Tue Jun 12, 2012 2:11 pm
Michoo <michoo_news@vp.pl> wrote:
Quote:
jakaś głupota,
Raczej jakiś głupek się za to zabiera.
Najlepiej w ogóle nie karmić, to może zdechnie...
--
Gof
identyfikator: 20040501
Guest
Tue Jun 12, 2012 6:15 pm
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?
MiSter
Guest
Tue Jun 12, 2012 9:34 pm
Quote:
pokazuje pełne $12 bajtów... a to ciekawostka?
A co wtym dziwnego? jezeli max_packet_size jest odpowiednio duży to idzie za
jednym razem.
MiSter
shg
Guest
Wed Jun 13, 2012 12:22 am
On Jun 12, 8:15 pm, "identyfikator: 20040501"
<NOSPAMtestowan...@go2.pl> wrote:
Quote:
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.
identyfikator: 20040501
Guest
Wed Jun 13, 2012 7:09 am
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?
identyfikator: 20040501
Guest
Wed Jun 13, 2012 7:30 am
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.
MiSter
Guest
Fri Jun 15, 2012 11:14 am
Quote:
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
identyfikator: 20040501
Guest
Fri Jun 15, 2012 12:22 pm
Quote:
Dla myszki sekwencja wygląda Np. tak:
dz. ale dlaczego napisałeś NP.?
Quote:
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ł...
Quote:
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...
Quote:
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 qwertz99@go2.pl żadnego spamu
nie planuję ;o).
MiSter
Guest
Sat Jun 16, 2012 6:15 am
Quote:
dz. ale dlaczego napisałeś NP.?
Bo dla innych może się różnić.
Quote:
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.
Quote:
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
Quote:
dzięki, jakbyś mógł to odezwij się do mnie na qwertz99@go2.pl żadnego
spamu nie planuję ;o).
Adres znajdziesz w sieci.
MiSter
identyfikator: 20040501
Guest
Sat Jun 16, 2012 10:10 am
Quote:
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?
MiSter
Guest
Sat Jun 16, 2012 11:28 am
Quote:
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
identyfikator: 20040501
Guest
Sat Jun 16, 2012 11:51 am
Quote:
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?
MiSter
Guest
Sat Jun 16, 2012 1:37 pm
Użytkownik "identyfikator: 20040501" <NOSPAMtestowanije@go2.pl> napisał w
wiadomości news:jrhs07$f43$1@node1.news.atman.pl...
Quote:
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
Goto page Previous 1, 2, 3 Next