STM32F4 LWIP rychlost

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Duben 21 10:23:41 CEST 2013


Ajo vidite, Close, to me nenapadlo ;-) Zkusim. Ale stejne to casem asi 
udelam ve Win API, kdyz s tim polem bytu nebude problem.

Dne 21. 4. 2013 10:12, Marek Sembol napsal(a):
> vyjadrim se jen castecne:)
> Pokud pri tom volani z C# -> WinAPI ty "velke objemy dat" jsou Byte[], 
> tak ta konverze je prakticky zadarmo.
> .NET si to pole proste jen prispendli v pameti a preda dal ukazatel.
>
> Synchronni vs. asynchronni - no tady se to asi nebude chovat rozdilne. 
> Ono to synchronni volani byva proste jen par volani BeginAsyncXXX a 
> EndAsyncXXX.
>
> Aplikace se samozrejme ukoncit da. Staci treba zavrit ten socket a 
> volani prijmu skonci na vyjimku (a tu je mozno osetrit, ze). Moznosti 
> jak ten socket zavrit je cela rada. Jako rekce na CTRL-C (pri 
> konzolove aplikaci), jako reakci na service-stop (pri service), jako 
> volani naschedulovane pomoci timeru (kdykoliv) a podobne.
>
> Marek
>
>
> 2013/4/21 Jaroslav Buchta <jaroslav.buchta na hascomp.cz 
> <mailto:jaroslav.buchta na hascomp.cz>>
>
>     Diky za namety, zarizeni zda se funguje docela zpusobne, co
>     nefunguje podle predstav je trida .NET UdpClient na PC - proste
>     pokud neodeslu aspon bajt na zarizeni, nic neprijme a i potom za
>     nejaky timeout chcipne a pomuze az odeslani dalsiho byte aby zase
>     bylo neco prijmuto - nic jineho takze port atd. je asi nasteveno
>     spravne... Neni nejaka option, kterou jsem zatim nepostrehnul, aby
>     to fungovalo primitivne a jen cekalo, az na port neco prijde???
>     Zkousel jsem uz vsechny mozne varianty synchronni (tam je vtipne,
>     ze Receive nema zadny timeout a aplikace se nakonec ani neda
>     ukoncit...) i asynchronni. C# je dobre asi fakt jen na GUI...
>
>     Co zatim hledam, tak jsou s touto tridou jen problemy - je jina
>     cesta nez pouzit DLL kde to bude realizovano jako WinAPI (coz by
>     snad mohlo fungovat...) Zase konverze velkych objemu dat do C# pak
>     bude asi narocna na rezii...
>
>
>
>
>     Dne 21. 4. 2013 9:35, Ondrej napsal(a):
>
>         Někde v lwipopts.h jde nastavit max. velikost paketu. 1400B je
>         velikost paketu (náhoda :-) - takže by se někde měla ještě
>         povolit fragmentace. Ale 100% jistý si tím nejsem. Nicméně
>         zrovna ST má pěkné PDF s návodem na lwip. Byly tam myslím i
>         nějaké testy rychlosti.
>
>         Add: ztrácení paketů: Nainstalujte si Wireshark a
>         zkontrolujte, jestli jsou pakety tam. To je naprostý základ.
>         Je docela slušná šance, že ST odesílat stíhá a nestíhá
>         přijímat jen program. Ono obecně odeslat UDP paket není
>         problém a to i na velkých rychlostech. Obvykle je problém pak
>         data napřijímat (ať už v PC nebo na uP).
>
>         Jinak UDP fragmentace smysl má a to velký. Pro velké toky je
>         problém přijímat 1400B pakety, ale pokud je fragmentuje třeba
>         na 14000B (10x větší), tak u to může PC stíhat. Už jen třeba
>         protože "callback" fce./přerušení se bude volat 10x méně často.
>
>         Ondřej
>
>         Dne 20.4.2013 22:54, Jaroslav Buchta napsal(a):
>
>             Mate nekdo zkusenost jak na to? Jednak jsem zjistil, ze je
>             nekde omezena velikost UDP paketu proste tak, ze pri
>             prekroceni to poskodi haldu a cele to jde do kytek,
>             hranice je nekde kolem 1400B
>             Dal je zajimave, ze kdyz odesilam pakety bezprostredne za
>             sebou, ztraceji se (ale az od nejakeho poctu a zalezi na
>             delce) a kdyz treba ted za kazdy 4. vlozim pauzu 1ms tak
>             to funguje OK (cili rychlost 4MB/s stabilne, coz mi prijde
>             OK, samozrejme prime pripojeni do pocitace)
>             Otazkou je, jestli se pakety ztraci u STM nebo na strane
>             PC... Ale na PC je gigabit, to by snad melo byt slusne
>             dimenzovane.
>             Dalsi zahada je u C# s UdpClient, dokud aspon bajt
>             nevyslu, nic neprijmu (i kdyz data na port prokazatelne
>             chodi, overeno hercules terminalem). To jsem v dokumentaci
>             nikde nenasel, melo by to snad fungovat pro prijem bez
>             volani Connect a Send, ne?
>
>             Jinak teda s rychlosti spokojenost, mozna by to slo i o
>             chlup vyse, prilezitostne vyzkousim. Taky by asi pomohlo
>             zvysit delku paketu - vi nekdo jak na to? Pochopil jsem,
>             ze jsou ruzne metody alokace pameti v LwIP.
>             _______________________________________________
>             HW-list mailing list  -  sponsored by www.HW.cz
>             <http://www.HW.cz>
>             Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>             http://list.hw.cz/mailman/listinfo/hw-list
>
>
>         _______________________________________________
>         HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/listinfo/hw-list
>
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130421/e653637e/attachment.htm>


Další informace o konferenci Hw-list