Other Parts Discussed in Thread: EK-TM4C129EXL, SYSBIOS
Hi all,
I'm starting to get into the networking aspect of my project and looking into the various options: lwIP, uIP, TI's NDK that is part of TI-RTOS. Currently I'm working with a EK-TM4C129EXL (Crypto Connected LaunchPad) but this firmware is destined for a custom board.
Regarding lwIP, what experiences have you had with it?
I'm looking for both a general "feel" in a subjective sense and I have some specific objective questions.
From a subjective standpoint: Is it easy to work with? Is performance "good"? Is it "reliable"? I know that these questions depend heavily on the context, what you're trying to do with it, etc. We're going to use it as the communication interface to our board, through which we will monitor live I/O data and status, send commands and receive replies, send and receive user settings / preferences, etc. I would say our use-case creates low to medium traffic. What does that mean? I'm guesstimating 5 to 50 packets a second, with about 100 to 200 bytes of payload data in a packet. It's not intended to be a massively busy server or anything like that, but it has to work continuously without getting "stuck."
My objective questions:
1. Is it difficult or impossible to avoid blocking function calls? That is, am I likely to find it necessary to switch from our simple polled superloop to a much more complex TI-RTOS based firmware? I'm trying to avoid going full RTOS (code size, execution overhead, simplicity, etc) but our firmware must be polled continuously and cannot block waiting for a network event outside of its control.
2. TivaWare_C_Series-2.1.4.178 comes with lwip-1.4.1. The newest at this time is lwip-2.0.2, though the code distributed at savannah.nongnu.org/.../ seems to lack any TM4C-specific code. I am starting with 1.4.1 because the example programs are based on that, but would like to use the newest code if possible. Has anyone done that and if so, was it relatively quick and easy to substitute the newer code, or was it a difficult and time-consuming task?
I guess that's it for now. I'm sure I'll have more questions (and more specific ones) later. Any additional information that anyone wishes to share is greatly appreciated.