MEMORY FOOTPRINT
The following memory footprints were derived for an ARM7 target in ARM mode using IAR's EWARM V4.20A.
Compiler optimization set for maximum optimization for either size or speed as indicated. µC/TCP-IP Options set for either most disabled or all enabled.
For µC/TCP-IP, we have excluded the NIC, PHY, ISR, & BSP layers since these are NIC & board-specific.
All values are Kbytes.
ROM Size
µC/TCP-IP
Protocols Layers |
All options enabled
|
All options disabled
|
Compiler
optimized
for Size |
Compiler
optimized
for Speed |
Compiler
optimized
for Size |
Compiler
optimized
for Speed |
| IF |
3.4 |
3.4 |
2.0 |
2.0 |
| ARP |
5.1 |
5.4 |
3.2 |
3.3 |
| IP |
11.4 |
11.7 |
7.7 |
8.0 |
| ICMP |
4.6 |
4.7 |
2.4 |
2.4 |
| UDP |
2.9 |
2.9 |
1.5 |
1.6 |
| TCP |
38.9 |
42.3 |
31.3 |
35.6 |
| Sockets |
17.2 |
18.2 |
11.1 |
12.4 |
| BSD |
0.6 |
0.7 |
0.0 |
0.0 |
| Utils |
14.0 |
14.3 |
8.4 |
8.6 |
| OS + Assembly |
4.5 |
5.1 |
4.1 |
4.7 |
| C Library |
2.5 |
2.6 |
1.7 |
1.7 |
| CPU specific |
0.2 |
0.3 |
0.0 |
0.0 |
µC/TCP-IP Total: |
105.3 |
111.5 |
73.5 |
80.2 |
µC/TCP-IP
ADD-ON OPTIONS
|
Compiler
optimized
for Size |
Compiler
optimized
for Speed
|
| µC/DHCPc |
7.7 |
7.7 |
| µC/DNSc |
1.9 |
1.9 |
| µC/TFTPc |
2.5 |
2.6 |
| µC/TFTPs |
2.5 |
2.6 |
| µC/FTPs |
9.5 |
9.7 |
| µC/FTPc |
5.5 |
5.6 |
| µC/HTTPs |
6.3 |
6.5 |
| µC/SNTPc |
1.5 |
1.4 |
| µC/POP3c |
3.9 |
3.7 |
| µC/SMTPc |
4.3 |
4.1 |
| µC/PPPc |
N/A |
N/A |
| µC/TELNETs |
N/A |
N/A |
RAM Size
µC/TCP-IP
|
All options enabled
|
All options disabled
|
| Base |
0.5 |
1.3 |
To the base value, add the RAM requirements for the stack depending on the configuration switches:
Buffer requirements
Buffer = [(200(max) + NET_BUF_CFG_DATA_SIZE_SMALL) * NET_BUF_CFG_NBR_SMALL] +
[(200(max) + NET_BUF_CFG_DATA_SIZE_LARGE) * NET_BUF_CFG_NBR_LARGE]
Where
NET_BUF_CFG_DATA_SIZE_SMALL is the size of the µC/TCP-IP small network buffers (typically 256 bytes)
NET_BUF_CFG_NBR_SMALL is number of small network buffers.
NET_BUF_CFG_DATA_SIZE_LARGE is the size of the µC/TCP-IP large network buffers (typically 1536 bytes, one Ethernet frame)
NET_BUF_CFG_NBR_LARGE is number of large network buffers.
Timer requireemnts
Timer = 28 * NET_TMR_CFG_NBR_TMR
Where NET_TMR_CFG_NBR_TMR is the number of timers configured.
Connections requirements
Connections = 56 * NET_CONN_CFG_NBR_CONN
Where NET_CONN_CFG_NBR_CONN is the number of connections (TCP or UDP) configured.
ARP cache requirements
ARP = 48 * NET_ARP_CFG_NBR_CACHE
Where NET_ARP_CFG_NBR_CACHE is the number of ARP cache entries configured.
TCP requirements
TCP = 276 * NET_TCP_CFG_NBR_CONN
Where NET_TCP_CFG_NBR_CONN is the number of TCP connections configured.
Sockets requirements
Sockets = 48 * NET_SOCK_CFG_NBR_SOCK
Where NET_SOCK_CFG_NBR_SOCK is the number of sockets configured.
Typical configuration
µC/TCP-IP
|
Number
|
Bytes per
|
Total Kbytes |
| Small buffers |
20 |
256 |
9.12 |
| Large buffers |
20 |
1536 |
34.72 |
| Timers |
30 |
28 |
0.84 |
| Connections |
20 |
56 |
1.12 |
| ARP cache |
10 |
48 |
0.48 |
| TCP connections |
10 |
276 |
2.76 |
| Sockets |
10 |
48 |
0.48 |
Total |
|
|
49.52 |
µC/TCP-IP
|
All options enabled
|
All options disabled
|
| Base |
0.5 |
1.3 |
| Configured components |
49.5 |
49.5 |
Total |
50.0 |
50.8 |
ADD-ON OPTIONS
In the following table, we use some definitions:
sizeof(OS_STK) on an ARM = 4
µC/TCP-IP
ADD-ON OPTIONS
|
RAM Size |
Note
|
| µC/DHCPc |
1.2 |
|
| µC/DNSc |
DNSc_MAX_HOSTNAME_SIZE * DNSc_MAX_CACHED_HOSTNAMES |
Where
DNSc_MAX_HOSTNAME_SIZE is the maximum DNS name size in characters
DNSc_MAX_CACHED_HOSTNAMES is the maximum number of cached DNS names configured. |
| µC/TFTPs |
sizeof(OS_STK) * TFTP_CFG_TASK_STK_SIZE |
Typical configuration: TFTP_CFG_TASK_STK_SIZE = 1024 |
| µC/FTPc |
sizeof(OS_STK) * FTP_CFG_TASK_STK_SIZE |
Typical configuration: FTP_CFG_TASK_STK_SIZE = 512 |
| µC/FTPs |
sizeof(OS_STK) * FTP_CFG_TASK_STK_SIZE |
Typical configuration: FTP_CFG_TASK_STK_SIZE = 512 |
| µC/HTTPs |
sizeof(OS_STK) * HTTP_CFG_TASK_STK_SIZE |
Typical configuration: HTTP_CFG_TASK_STK_SIZE = 2048 |
| µC/SNTPc |
N/A |
N/A |
| µC/SMTPc |
1.1 |
104 bytes + 1024 bytes (DATA memory) |
| µC/POP3c |
1.1 |
128 bytes + 1004 bytes (DATA memory) |
| µC/TELNETs |
8.0 |
N/A |
| µC/PPPc |
N/A |
N/A |
Current Limitations
Current Limitations |
Planned release date |
No TCP Keep-Alives |
Contact us for more information |
| No IP multicasting |
Contact us for more information |
| No current PING utility (ICMP Echo Request). Current µC/TCP-IP release replies with ICMP Echo Reply to ICMP Echo Request. |
Contact us for more information |
| TCP Security & Precedence |
Contact us for more information |
| TCP Urgent Data |
Contact us for more information |
| ICMP Address Mask Agent/Server |
Contact us for more information |
| IP Security options |
Contact us for more information |
| No IP transmit fragmentation |
Contact us for more information |
No IP forwarding/routing
|
Contact us for more information |
Supports a single network interface and one host IP address
Supports a single default gateway
No Multihoming |
Contact us for more information |
|