Micrium

µC/TCP-IP Overview

Benefits

Drivers

PC Windows Evaluation

Licensing

Pricing Information

µC/TCP-IP

µC/TCP-IP is a compact, reliable, high performance TCP/IP protocol stack. Built from the ground up with Micrium's renowned quality, scalability and reliability, µC/TCP-IP enables the rapid configuration of required network options to minimize your time to market.  

FEATURES and BENEFITS

Cleanest Source Code µC/TCP-IP provides you with the highest quality source code in the industry. µC/TCP-IP is a clean-room design and is not derived from publicly available Unix stacks, yet still maintains compatibility with the Berkeley 4.4 socket layer interface. As with all Micrium products, µC/TCP-IP is written in ANSI C enabling its usage with a wide array of best-of-class cross-development tools.
Portable µC/TCP-IP can be used on 16, 32 and even some 64-bit CPUs.
High Performance µC/TCP-IP was designed specifically for the demanding requirements of embedded systems. Critical sections were kept to a minimum and selected run-time validations can be disabled to enhance performance. µC/TCP IP implements zero copy buffer management for highest efficiency.
Scalable and ROMable µC/TCP-IP allows you to adjust the memory footprint based on your requirements. µC/TCP-IP can be configured to only include only those network modules absolutely required by your system. When a module is not used, it's not included in the build to save valuable memory space for resource limited embedded systems.
Royalty Free µC/TCP-IP is licensed on a per-end-product basis. Each different product that embeds µC/TCP-IP requires a different license.


ADD-ON OPTIONS


  Description
µC/DHCPc Dynamic Host Configuration Protocol (client)
µC/DNSc Domain Name System (client)
µC/TFTPc Trivial File Transfer Protocol (client)
µC/TFTPs Trivial File Transfer Protocol (server)
µC/FTPc File Transfer Protocol (client)
µC/FTPs File Transfer Protocol (server)
µC/HTTPs HyperText Transport Protocol (server)
µC/SNTPc Simple Network Time Protocol (client)
µC/POP3c Post Office Protocol 3 (client)
µC/SMTPc Simple Mail Transfer Protocol (client)
µC/TELNETs Terminal Emulation Protocol (server)

MEMORY FOOTPRINT

The following memory footprints were derived for µC/TCP-IP V1.91 on an ARM7 target in ARM mode using IAR's EWARM V4.41A. 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

6.1    

6.2    

3.6    

3.7    

IP

13.3    

13.6    

8.5    

8.8    

ICMP

5.3    

5.4    

2.6    

2.6    

UDP

3.4    

3.4    

1.8    

1.8    

TCP

42.9    

47.8    

33.5    

38.5    

Sockets

24.6    

25.8    

12.2    

12.94    

BSD

0.6    

0.7    

0.0    

0.0    

Utils

9.2    

9.5    

16.3    

16.6    

OS

5.1    

5.8    

4.1    

4.7    

Assembly

0.4    

0.4    

0.0    

0.0    

µC/LIB V1.24

2.5    

2.6    

0.5    

0.5    

µC/CPU V.17

0.2    

0.3    

0.0    

0.0   

µC/TCP-IP Total:

121.5    

129.2    

77.4   

84.4    

 

µ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/HTTPs

6.3   

6.5   

µC/FTPs

9.5   

9.7   

µC/FTPc

5.5   

5.6   

µC/TFTPs

2.5   

2.6   

µC/TFTPc

2.5   

2.6   

µC/SNTPc

1.5   

1.4   

µC/POP3c

3.9   

3.7   

µC/SMTPc

4.3   

4.1   

µC/TELNETs

3.7   

3.8   


RAM Size

Add the RAM requirements for the stack depending on the configuration switches:

Buffer requirements

Buffer =    [(208(max) + NET_BUF_CFG_DATA_SIZE_SMALL) * NET_BUF_CFG_NBR_SMALL]  +
            [(208(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
Small buffers
20   
256   
Large buffers
20   
1536   
Timers
30   
28   
Connections
20   
56   
ARP cache
10   
48   
TCP connections
10   
276   
Sockets
10   
48   

µC/TCP-IP
All options enabled
All options disabled
Configured components
54.8    
54.0    

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
Based on
Note
µC/DHCPc
3.4 
  
  
µC/DNSc
8.8 
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/HTTPs
17.7
sizeof(OS_STK) * HTTP_CFG_TASK_STK_SIZE Typical configuration: HTTP_CFG_TASK_STK_SIZE    = 2048
µC/FTPs
27.1
sizeof(OS_STK) * FTP_CFG_TASK_STK_SIZE Typical configuration: FTP_CFG_TASK_STK_SIZE     =  512
µC/FTPc
0.1
sizeof(OS_STK) * FTP_CFG_TASK_STK_SIZE Typical configuration: FTP_CFG_TASK_STK_SIZE     =  512
µC/TFTPs
8.6
sizeof(OS_STK) * TFTP_CFG_TASK_STK_SIZE Typical configuration: TFTP_CFG_TASK_STK_SIZE    = 1024
µC/TFTPc
2.0
sizeof(OS_STK) * TFTP_CFG_TASK_STK_SIZE Typical configuration: TFTP_CFG_TASK_STK_SIZE    = 1024
µC/SNTPc
N/A
  
   
µC/SMTPc
1.0
   
104 bytes + 1024 bytes (DATA memory)  
µC/POP3c
1.1
  
128 bytes + 1004 bytes (DATA memory)   
µC/TELNETs
4.1
 
  

 

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 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