Embedded TCP/IP stack selection

Apr 23, 2007 10 Replies

Just three contenders are left in my particular arena: uC/TCP-IP, CMX-MicroNet and lwIP. Price, capabilities and source analysis are on my side. What I'm looking for from your appreciated minds are first-hand experiences on any of these three stacks, if freely available.



Target: Renesas M32C with uC/OS-II. Previous experiences from me with TCP/IP stacks: Wind River's one, as embedded in VxWorks 5.4 (quite reliable, in my opinion).



Thanks.



-- Ignacio G.T.


A TCP/IP stack is heavily relying on the services provided by OS. Porting a stack to a different OS is a quite an involved piece of work. Thus, I would suggest using the stack which comes with your target OS.

Vladimir Vassilevsky

DSP and Mixed Signal Design Consultant

formatting link

CMX-MicroNet can be used without an OS or with an OS through a simple porting layer. This porting layer is already done for the CMX-RTX and CMX-Tiny+ OSes. CMX-MicroNet supports a wide variety of processors and compilers out of the box so getting it running should not be "an involved piece of work".

Paul Bosselaers CMX Systems

In article , Vladimir Vassilevsky writes

Quite a few TCP/IP stacks are independent of any OS.

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/ /\/\/ chris@phaedsys.org www.phaedsys.org \/\/\ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

It is required to have the dynamic memory management and the timekeeping services at the least. Also, the socket interface without multithreading does not make much sense.

VLV

The code involved to write a heap, timekeeping, and scheduler is mostly high level, and is minimal compared to the code required by a TCP/IP stack. I maintain an embedded TCP/IP stack. Porting the three items you mention is far less work than writing a new Ethernet driver.

Stephen

Stephen Pelc, stephenXXX@mpeforth.com MicroProcessor Engineering Ltd - More Real, Less Time 133 Hill Lane, Southampton SO15 5AF, England tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691 web: http://www.mpeforth.com - free VFX Forth downloads

You know everything about your own stack, thus it is not a big deal *for you* to port it to any platform. However I would prefer a solution rather then "do it yourself" package. Why bother porting somebody else's stack when there is a TCP/IP native to OS available?

VLV

I have ported lwIP and uIP for use with FreeRTOS.org on a couple of processors, and the effort was minimal. Especially in comparison to writing the MAC driver. For the path of least resistance it might be worth considering who has the best support for your chosen processor rather than your chosen OS.

Although the OP has not mentioned other requirements, such as throughput, number of connections, protocols, etc. These would naturally narrow the selection anyway.

Regards, Richard. + http://www.FreeRTOS.org A free real time kernel for 8, 16 and 32bit systems. + http://www.SafeRTOS.com An IEC 61508 compliant real time kernel for safety related systems.

When resources are constrained, and the generalised OS and stack are too big. Otherwise, go ahead and use an O/S with a stack.

Other reasons are to do with having full source code and so on.

Stephen

Stephen Pelc, stephenXXX@mpeforth.com MicroProcessor Engineering Ltd - More Real, Less Time 133 Hill Lane, Southampton SO15 5AF, England tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691 web: http://www.mpeforth.com - free VFX Forth downloads

Can you let us know your experience with uC/TCP-IP? Were you able to build and test it without upfront fees?

FWIW, the 'skyeye' project has ports of lwip on uC/OS-II as a starting point for other porting efforts; I am porting it to my favorite arch over time...

Regards,

Michael

If you are not married to the M32C then take a look at:

formatting link

TCP/IP, RTOS development tools and hardware all ready to use for $99.00

Paul

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required