-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.n
et!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!pe
er.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.
highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-
b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Sun, 2 Oct 2022 21:06:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.3.0
Subject: Re: lwIP - odbieranie danych przez TCP
Content-Language: en-US, pl
Newsgroups: pl.misc.elektronika
References: <632f2939$0$455$65785112@news.neostrada.pl>
<1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
<6333f830$0$447$65785112@news.neostrada.pl>
<a...@n...neostrada.pl>
From: Atlantis <m...@w...pl>
In-Reply-To: <a...@n...neostrada.pl>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 51
Message-ID: <6339e123$0$567$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.21.25
X-Trace: 1664737571 unt-rea-b-01.news.neostrada.pl 567 83.27.21.25:34044
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 4226
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774636
[ ukryj nagłówki ]On 2.10.2022 15:05, Marek wrote:
> Teraz mi się przypomniało, że miałem podobne problemy z tym projektem, z
> socket buf na spiram nawet 128kB (używany wewnętrznie przez stos MLA)
> powodował po pewnej chwili buffer underrun a o wiele mniejszy bufor
> aplikacyjny na dane (ale nie socket buffer) w ram mcu dawał spokojnie
> radę.
Jestem coraz mocniej przekonany, że winę za ten stan rzeczy może ponosić
zbyt mały rozmiar bufora odbiorczego gniazda sieciowego. W momencie gdy
aktualny pakiet jest przetwarzany (dane z niego są ładowane do pamięci
SPI) brakuje miejsca na przyjęcie kolejnego i wymuszana jest
retransmisja, powodująca w efekcie spowolnienie transmisji.
Przypomniałem sobie w międzyczasie, że bardzo podobny problem miałem na
prototypie tej konstrukcji, pracującej na PIC24FJ256DA210. Tam też nie
udało mi się uzyskać poprawnego odtwarzania streamów większych niż 32
kbps. Uznałem wtedy, że winę za to musi ponosić zbyt niskie taktowanie
magistrali SPI, na której pracuje ENC28J60. Wtedy się nad tym za bardzo
nie zastanawiałem, bo dysponowałem już nowsza wersją hardware'u. Jednak
teraz z perspektywy czasu wydało mi się to dziwne, bo w końcu 16 MHz to
nie mało.
Przypomniałem sobie także, że w tym projekcie na PIC24 także miałem
problemy z pamięcią. Układ ma co prawda 96kB RAM-u, jednak korzystanie z
niej nie jest takie oczywiste, bo tylko 32kB to dostępna bezpośrednio
pamięć, w której może znajdować się stos i sterta. Reszta to specjalna
pamięć stronnicowana, w której można umieszczać np. bufory ba dane.
Jednak z uwagi na to, że trzeba z nią postępować w odpowiedni sposób,
nie da się z niej bezpośrednio korzystać w standardowych bibliotekach.
W pewnym momencie zacząłem mieć problemy, które interpretowałem jako
nadpisywanie stosu. Pozmniejszałem więc rozmiary wszystkich buforów,
które musiały się mieścić głównej pamięci - w tym buforów odbiorczych
gniazd sieciowych.
Teraz przeprosiłem się z tym projektem na PIC24 i przyjrzałem mu się
bliżej. Po pierwsze wykorzystałem tę dodatkową pamięć (EDS) do
zaimplementowania 16kB bufora cyklicznego na dane audio. Już samo to
pozwoliło mi zaoszczędzić trochę głównej pamięci. Po drugie wczytałem
się trochę w opcje konfiguracyjne i zobaczyłem, że ten procesor ma
ustawieni o nazwie "Data model", które może przyjmować wartość "small"
lub "large". W "small" wszystkie zmienne statyczne oraz globalne muszą
zmieścić się w pierwszych 8kB RAM-u. W "large" nie ma tego ograniczenia.
Okazuje się, że to właśnie to ustawienie (a nie nadpisywanie stosu)
powodowało u mnie problemy. Okazało się więc, że tak naprawdę mam
jeszcze całkiem sporo "głównej" pamięci do zagospodarowania.
Pozwoliło mi to zwiększyć rozmiar bufora odbiorczego gniazda sieciowego
do ponad 6kB. To zdecydowanie poprawiło sytuację. Streamy 192kbps nadal
nie odtwarzają się poprawnie, ale te 128kbps i 160kbps już tak.
Następne wpisy z tego wątku
- 02.10.22 21:41 Mateusz Viste
- 04.10.22 09:04 Atlantis
- 05.10.22 17:23 Atlantis
- 05.10.22 18:37 a...@m...uni.wroc.pl
- 06.10.22 09:47 Atlantis
- 06.10.22 17:18 J.F
- 07.10.22 20:40 Atlantis
- 09.10.22 08:25 Marek
- 09.10.22 10:19 Atlantis
- 09.10.22 14:45 Marek
- 10.10.22 10:36 J.F
Najnowsze wątki z tej grupy
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-03-01 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=