heinbali01 wrote on Saturday, November 29, 2014:
Bingo, that was it.
I’m glad to hear.
I first sorted the ipBUFFER_PADDING which made satisfied the alignment,
but then hit the snag of no reference back to the descriptor.
This mechanism was already present in the earlier FreeRTOS+UDP. The double pointers are necessary for the ZERO_COPY feature. It allows to pass around a “const char*” whereas in fact it is NetworkBuffer.
In the next release, the double pointers and also the ipBUFFER_PADDING + ipconfigPACKET_FILLER_SIZE defines will be totally hidden, i.e. moved to the library.
The network driver will only supply a pointer to a space big enough to hold all Network Buffers.
Definitely let me know when you bundle up the next labs release
You will be the first one to hear it
Note that the current release (141019) is not a first try-out. The development already started more than a year ago and this library has already been applied in commercial applications.
It will remain in FreeRTOS Labs as long as: “… we are still refining its design, and the source code and documentation do not yet meet Real Time Engineers Ltd’s strict quality standards”.
To be expected in the new release:
- Sockets in listening mode, using the
'FREERTOS_SO_REUSE_LISTEN_SOCKET', can now also
be used with select() and accept().
The reuse option means that the same instance of
the listening socket will get connected.
- The above change: hiding the PADDING and FILLING
bytes and setting the double links with pointers.
- Extending the zero-copy option for TCP: the sending
routine may pass all packet buffers directly to the DMA,
in stead of first copying it.
- Adapted documentation
Thanks guys. Will continue code stepping…
Same to you.
Btw are you still stepping through the code or running it by now?