These tables contain the PIC program and data memory requirements for the TCP/IP stack. The first two rows list the program memory consumption of the stack's required files, and each additional row contains the additional memory required to implement specific modules. These values are approximations; the program memory size may increase depending on application code, or decrease based on optimizations of modules with overlapping code. Modules that require user-implemented API functions (SNMP, HTTP) are tested without additional code. The global data memory column includes only the RAM needed for the required structures in the stack; it does not include the memory used for socket allocation.
The C18 code uses the PIC18F97J60 family Ethernet controller as the MAC/PHY chip; the C30 and C32 measurements are made using the ENC28J60 Ethernet controller (ENCX24J600 sizes are similar). All compilers include a separate Required Stack Code line for Wi-Fi applications using the MRF24WB0M as the network controller. These two Required Stack Code lines are mutually exclusive -- do not add them together. Instead, chose the line representing your network controller.
These values are approximations obtained from TCP/IP Stack version 5.31. Note that these tables will not appear in the PDF version of the help file; see the "TCPIP Cxx Memory Usage.htm" files in the TCPIP documentation folder in the Microchip Application Library help folder.
C18
Module | Program Memory
(bytes) No Optimizations |
Program Memory
(bytes) All Optimizations |
Global Data
Memory (bytes) |
||||||
Required Stack Code - PIC18F97J60 family controller | 9118 | 7568 | 585 | ||||||
Required Stack Code - MRF24WB0M Wi-Fi controller | 25482 | 19498 | 1078 | ||||||
Announce(1) | +3395 | +2775 | +188 | ||||||
AutoIP | +2860 | +2090 | +88 | ||||||
DHCP Client(1) | +6244 | +4684 | +241 | ||||||
DHCP Server(1) | +5012 | +3490 | +198 | ||||||
DNS Client(1) | +5955 | +4333 | +243 | ||||||
Dynamic DNS Client(1,2,3) | +31519 | +22039 | +677 | ||||||
HTTP2 Server/MPFS2(2) | +38433 | +25137 | +646 | ||||||
ICMP Client | +1529 | +1263 | +42 | ||||||
ICMP Server | +436 | +410 | +4 | ||||||
NBNS(1) | +4465 | +3589 | +208 | ||||||
SMTP Client(1,2,3) | +33311 | +23485 | +666 | ||||||
SNMP Agent(1,4) | +27837 | +18485 | +733 | ||||||
SNTP Client(1,3) | +7269 | +5287 | +267 | ||||||
SSL Client | +50139 | +35221 | +1818 | ||||||
SSL Server | +51757 | +36547 | +1464 | ||||||
SSL Server/Client | +59279 | +41027 | +1939 | ||||||
TCP | +19028 | +13370 | +323 | ||||||
UDP | +2730 | +2270 | +186 | ||||||
Total(5) | 97947 | 67339 | 2573 | ||||||
Total + SSL(5) | N/A(6) | N/A(6) | N/A(6) | ||||||
Notes: | |||||||||
(1): Code size includes the UDP module (required for operation). | |||||||||
(2): Code size includes the TCP module (required for operation). | |||||||||
(3): Code size includes the DNS module (required for operation). | |||||||||
(4): Code size includes the MPFS2 module (required for operation). | |||||||||
(5): Total includes the required files, and the ARP, AutoIP, DHCP Client and Server, DNS, | |||||||||
Dynamic DNS, HTTP2, ICMP, MPFS2, NBNS, SMTP, SNMP, SNTP, TCP, and UDP modules. | |||||||||
(6): Compiled code size exceeds the capacity of the target processor. | |||||||||
C30
Module | Program Memory
(bytes) Size Optimization (-0s) |
Program Memory
(bytes) Speed Optimization (-03) |
Global Data
Memory (bytes) |
||||||||
Required Stack Code - ENC28J60 network controller | 8244 | 23451 | 150 | ||||||||
Required Stack Code - MRF24WB0M Wi-Fi controller | 15147 | 25356 | 308 | ||||||||
Announce(1) | +1809 | +2061 | +146 | ||||||||
AutoIP | +2220 | +2307 | +58 | ||||||||
DHCP Client(1) | +4395 | +4965 | +188 | ||||||||
DHCP Server(1) | +3090 | +3873 | +152 | ||||||||
DNS Client(1) | +3840 | +4725 | +182 | ||||||||
Dynamic DNS Client(1,2,3) | +15675 | +23982 | +474 | ||||||||
HTTP2 Server/MPFS2(2) | +18780 | +30114 | +534 | ||||||||
ICMP Client | +1356 | +1449 | +30 | ||||||||
ICMP Server | +348 | +375 | +0 | ||||||||
NBNS(1) | +2844 | +3165 | +156 | ||||||||
SMTP Client(1,2,3) | +16323 | +26709 | +526 | ||||||||
SNMP Agent(1,4) | +14280 | +25041 | +492 | ||||||||
SNTP Client(1,3) | +4644 | +5715 | +208 | ||||||||
SSL Client | +24144 | +44760 | +1400 | ||||||||
SSL Server | +24297 | +45867 | +1032 | ||||||||
SSL Server/Client | +27888 | +53724 | +1456 | ||||||||
TCP | +7989 | +14550 | +204 | ||||||||
UDP | +1311 | +1503 | +142 | ||||||||
Total(5) | 57960 | 97617 | 1398 | ||||||||
Total + SSL(5) | 77160 | 136050 | 2640 | ||||||||
Notes: | |||||||||||
(1): Code size includes the UDP module (required for operation). | |||||||||||
(2): Code size includes the TCP module (required for operation). | |||||||||||
(3): Code size includes the DNS module (required for operation). | |||||||||||
(4): Code size includes the MPFS2 module (required for operation). | |||||||||||
(5): Total includes the required files, and the ARP, AutoIP, DHCP Client and Server, DNS, | |||||||||||
Dynamic DNS, HTTP2, ICMP, MPFS2, NBNS, SMTP, SNMP, SNTP, TCP, and UDP modules. | |||||||||||
(6): Compiled code size exceeds the capacity of the target processor. | |||||||||||
C32
Module | Program Memory
(bytes) Size Optimization (-0s) |
Program Memory
(bytes) Speed Optimization (-03) |
Global Data
Memory (bytes) |
||||||||
Required Stack Code - ENC28J60 network controller | 14192 | 32636 | 108 | ||||||||
Required Stack Code - MRF24WB0M Wi-Fi controller | 24216 | 34632 | 195 | ||||||||
Announce(1) | +3018 | +3214 | +28 | ||||||||
AutoIP | +2644 | +2764 | +64 | ||||||||
DHCP Client(1) | +6164 | +6384 | +80 | ||||||||
DHCP Server(1) | +4192 | +4376 | +36 | ||||||||
DNS Client(1) | +4988 | +5656 | +76 | ||||||||
Dynamic DNS Client(1,2,3) | +23658 | +35402 | +397 | ||||||||
HTTP2 Server/MPFS2(2) | +29362 | +43236 | +351 | ||||||||
ICMP Client | +1360 | +1336 | +36 | ||||||||
ICMP Server | +360 | +372 | +0 | ||||||||
NBNS(1) | +3924 | +4152 | +40 | ||||||||
SMTP Client(1,2,3) | +26002 | +40638 | +353 | ||||||||
SNMP Agent(1,4) | +20979 | +32247 | +350 | ||||||||
SNTP Client(1,3) | +5886 | +6674 | +108 | ||||||||
SSL Client | +37622 | +58650 | +581 | ||||||||
SSL Server | +37726 | +60946 | +595 | ||||||||
SSL Server/Client | +42690 | +67890 | +613 | ||||||||
TCP | +13924 | +24656 | +214 | ||||||||
UDP | +2356 | +2476 | +20 | ||||||||
Total(5) | 85143 | 131412 | 1181 | ||||||||
Total + SSL(5) | 112948 | 173585 | 1566 | ||||||||
Notes: | |||||||||||
(1): Code size includes the UDP module (required for operation). | |||||||||||
(2): Code size includes the TCP module (required for operation). | |||||||||||
(3): Code size includes the DNS module (required for operation). | |||||||||||
(4): Code size includes the MPFS2 module (required for operation). | |||||||||||
(5): Total includes the required files, and the ARP, AutoIP, DHCP Client and Server, DNS, | |||||||||||
Dynamic DNS, HTTP2, ICMP, MPFS2, NBNS, SMTP, SNMP, SNTP, TCP, and UDP modules. | |||||||||||
(6): Compiled code size exceeds the capacity of the target processor. | |||||||||||