Memory Usage

Microchip TCP/IP Stack

Microchip TCP/IP Stack Help
Memory Usage

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.
 

Microchip TCP/IP Stack 5.42.08 - June 15, 2013
Copyright © 2012 Microchip Technology, Inc.  All rights reserved.