Wracając do tematu obsługi TCP/IP na małych mikrokontrolerach...
Jak już wspominałem, od jakiegoś czasu bawię się łącznością sieciową na ośmiobitowych MCU (głównie Atmegi). Zacząłem od ENC28J60 i minimalistycznego stosu Tuxgraphics. Używałem go głównie do przesyłania informacji za pośrednictwem pakietów UDP. Nie korzystałem z bardziej zaawansowanych funkcji, jak np. przydzielanie numeru IP z DHCP albo zapytania DNS. Nie realizowałem także obsługi WWW - tego zresztą w ogóle nie mam zamiaru robić na tak małych MCU. Nawet najprostsze strony zabierają sporo flasha.
Oczywiście przy takim podejściu stos zajmował stosunkowo niewielką ilość pamięci. Oczywiście jeszcze lepiej wyglądała sytuacja w przypadku układów Wiznetu, wyposażonych w sprzętową obsługę stosu.
Teraz zastanawiam się jak bardzo zwiększy się zużycie zasobów po przejściu na bardziej zaawansowany stos (np. uIP albo ten od Microchipa). Migracja będzie konieczna, bo Tuxgraphics niestety nie nadaje się do postawienia serwera telnetu.
Załóżmy, że urządzenie ma się komunikować ze światem za pośrednictwem UDP, udostępniając także konsolę konfiguracyjną przez telnet. W przyszłości w grę może wchodzić także dodanie innych funkcji (NTP, DNS). Musi też oczywiście pozostać odpowiednia ilość zasobów na realizację normalnych zadań (parsowanie poleceń, wykonywanie pomiarów, załączanie wyjść).
Czy powinienem się spodziewać, że stos zajmie mi momentalne cały MCU? Powinienem zapobiegawczo zastosowań większy procek (np. Atmega128/1284) czy nie jest tak źle i coś w stylu Mega32/328/644 spokojnie wystarczy?
A może powinienem już od razu postawić na układy Wiznet i nie przejmować się zużyciem zasobów przez stos?