This diagram above is a draft of my current TCP/IP Stack showing the hardware MAC at bottom and stack modules on top. At right is RTOS services needed for an TCP/IP Stack. The diagram below is the same using a Wiznet W5500 chip.
For now I will be using the Wiznet W5500 and it’s ioLibrary, but I will at some point also support a full SW stack – or change how we access these modules. My challenge is that as I start using this stack I also risk creating dependencies and face porting of code later. This can easily be a large task, so we need to avoid this by ensuring that all access to an TCP/IP Stack is generic and can easily be ported – in simple words we need a clever wrapper.