I’m working on a project about protocol stack for embedded systems. Honestly, I don’t have a robust background about this subject (I met a lot of problem due to that). I was searching for stacks that can be useful in this case and I found some articles that considered the lwip stack as “the most used stack for embedded system” (so if you know another stack that it can be very useful for such systems, please don’t hesitate to say it because I reaaaaally need your help).
I was reading the “official” (and may be obsolete) documentation of Adam Dunkels, and I found a paragraph that disturbed me a lot.
He says that :
« There are 2 ways of interfacing the TCP/IP stack, either calling the functions in the TCPb/UDP modules directly, or using the lwIP API. The 1st approach is based on callbacks and an application program that uses this approach can hence not operate in a sequential manner. This makes it harder to program and the application code is harder to understand. Also, the application program that interfaces the TCP/UDP modules directly has reside in the same process as the TCP/IP stack. This is because a callback function cannot be called across a process boundary »
I really didn’t understand the two parts: why he says that a callback can’t operate in a sequential manner? What does it mean to say that a callback function cannot be called across a process boundary??
As you can conclude, I’m not very familiar with this approach. Consequently, I have a lot of questions related to that. But I will conclude with a last one : can you please tell me (and explain –if it is possible-) what partsof a lwip stack can be configurable? Which aspects I mean?
For example, (from what I understood) the process model of lwip is a “static protocol structure”. But my project requires mobility and certain flexibility for these protocols. I mean that I want (statically) to highlight the protocol that I want and not be restricted by a static classification of these protocols.
That’s all ‘for the moment’, I will be very very useful if you help me to clarify this points!