mlekorlz napisał(a):
Kod serwera pochodzi z książki więc uznałem, że był on przez Pana przetestowany,
Czy ty widziałeś kod serwera z książki ? czy ten serwer coś robi poza statycznym wyświetleniem czegoś ? A i tak może się zawiesić z byle powodu gdy naraz do serwera dotrze zbyt wiele zapytań z zewnątrz np z różnych adresów IP.
mlekorlz napisał(a):
zcztywanie z URLa pochodzi z tuxgraphics, zczytane zmienne są prawidłowe. Podłączanie innych układów do niego nie powodowało problemów.
To widziałem po twoim kodzie. Jeśli myślisz, że pisanie bardziej zaawansowanych aplikacji z użyciem stosu TCP i mikrokontrolera 8-bit a SZCZEGÓLNIE w postaci serwera HTTP to poezja - to się GRUBO mylisz niestety, to jest piekło
.... więc zaczynając pisać to "welcome to hell"
....
mlekorlz napisał(a):
Jak zatem mogę jeszcze sprawdzić gdzie leży problem?
Przede wszystkim to od BARDZO ale to BARDZO dokładnego przestudiowania całej strony tuxgraphics i o tym jak autorzy sami piszą od początku o swoim stosie TCP, o kłopotach, problemach itp - np tych związanych także z ENC gdy w pierwotnych ich aplikacjach był zasilany wraz z prockiem z 3,3V i procek był taktowany 8MHz. Dlaczego poszli w stronę taktowania 12,5MHz z ECN ... ale ok ten temat już cię nie dotyczy bo masz ATB-ETHERNET i możesz procka zasilać +5V dzięki czemu możesz go taktować np 20MHz. Do poprawnej pracy z ENC procek powinien być taktowany minimum 16MHz a najlepiej 20MHz .... inaczej mogą być zwiechy i konieczny przede wszystkim Watchdog. Ciekawe jakie ty masz taktowanie?
Kolejna sprawa - pisanie aplikacji z użyciem stosu TCP to przede wszystkim próba dogłębniejszego poznania stosu i jego zasad działania. A nie że się tam weźmie jakiś stos i nagle wszystko super.
Ja już nawet na tym forum, bo nie pamiętam czy w książce nawet tego nie napisałem. Że generalnie odpalanie serwera HTTP na procesorze 8-bitowym to POMYŁKA GENETYCZNA
czy to oznacza, że ethernet i 8-bitowce to tylko "pic na wodę fotomontaż" ? NIE
ale dlatego trzeba zwrócić na inne sposoby pracy i wykorzystania ethernetu. 8-bitowiec nie podoła już nawet kilku żądaniom konkurencyjnym http, tu trzeba i to dobrego ARM'a !
ale za to 8-bitowiec sobie dobrze poradzi np z UDP, albo ......
albo z klientem www (web client) .... a tak się składa, że fajny stosik z tuxgraphics daje takie możliwości. Chodzi o to aby nie narażać procka na konkurecyjne zapytania w trybie TCP (HTTP) bo to masakra. Podczas gdy z krótkimi i szybkimi zapytaniami ale niewielkimi ramkami UDP dosyć dobrze sobie poradzi
dlatego można pisać serwery http dla 8-bitowców ale to wymaga już na prawdę większego doświadczenia w TCP i programowaniu wielowątkowym, żeby można było zrozumieć na jakich etapach dochodzi do zwiechy w takim stosie. Nawet z debugerem sprzętowym ciężko byłoby to wyłapywać - a gdy jeszcze weźmiemy kłopoty ENC, który oczekuje bardzo szybkiej komunikacji po SPI z prockiem, a tu np AVR próbuje z nim gadać z poziomu prędkości ŚLIMAKA - to czasem będzie miał focha i się zawiesi - to akurat normalka.
to wszystko w takim telegraficznym skrócie - więc zobacz ile rzeczy tu jest ważnych poza twoimi kropkami wysyłanymi na uart i pozostałymi rzeczami w programie ..... a zresztą ....
zapytania http wymagają prawie 100% mocy procka - a ty przecież "kradniesz" sporo procent mocy na obsługę silników i jeszcze innych pętli w swoim programie głównym, z których pewnie część jest bardzo mało optymalnych. A jeszcze jak gdzieś wstawisz byle kociego _delay'a - to KAPLICA z ZONKIEM razem wzięta
teraz jaśniej ?